使用pytesseract图像处理之中文识别(二)_pytesseract 中文-CSDN博客

mikel阅读(416)

来源: 使用pytesseract图像处理之中文识别(二)_pytesseract 中文-CSDN博客

今天继续之前的图像识别,这次在英文的基础上开始中文识别,首先添加中文识别包:chi_sim 这个文件。下载地址:
https://github.com/tesseract-ocr/tessdata
如果你有不明白的可以去官方GitHub看看:
https://github.com/tesseract-ocr/tesseract
下载后把chi_sim 这个文件安装到你的tessdata这个文件夹下面。
注意一点: 下载中文包的时候要看看你的tesseract的版本,如果你的是3.02版本的,就下3.02对应的中文包;3.05就下3.05的,一定要仔细这里。不然后面会报错!
安装好了后,我就去写代码:

结果发现报错如下:
pytesseract.pytesseract.TesseractError: (3221225477, ‘’)
这是怎么回事呢?明明中文包下载对的啊。试过识别英文图片的,都是正常打印出字母来。于是纳闷了一下,便开始各种谷歌,看了数篇解决方案后,发现是环境变量那里少了tessdata这个,于是点开

找到 “系统变量”这里的“Path”变量 ,双击它,然后在弹出的页面里面找到之前添加的Tesseract-OCR这个变量:

在它后面新建一个同样路径的变量,然后再加上tessdata 这个单词。
注意一定要重新建一个环境变量,而不是在原来的上面直接加!!!
即这样:C:\Program Files (x86)\Tesseract-OCR\tessdata
就像我上面图片一样,建两个后确定保存。
(这里再多说一句:如果你按上面的添加环境变量后还是报错,可以看看你的系统变量这一栏有没有下图这个选项:

如果没有的话,就自己新建一个,把他添加进去。)
这下我再运行上面的程序,随手找的一张背景有点杂乱的中文图片,识别效果如下图:

简直差的不行了,又换了一张图,是标准的宋体,而且背景很干净,于是得到了下面这样的效果:

所以得出跟英文一样的结论:tesseract要想识别中文的概率达到百分之七十以上,首先要字体是宋体;其次背景要很干净,没有跨行。 因为只安装了中文简体的包,没有安繁体,而繁体是下面tra这个:

所以如果你要识别繁体就要下这一个才对!好了今天的识别就到这里,后面继续开始训练字库。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_41013322/article/details/88670450

超详细解决pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it‘s not in yo...-CSDN博客

mikel阅读(553)

来源: 超详细解决pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it‘s not in yo…-CSDN博客

1、在使用pytesseract打开图片是遇到错误,没有找到文件

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it’s not in your PATH

 

2、排查解决:

在我们下载了PIL(命令pip install pillow)后,找到pytesseract.py文件,里面的tesseract_cmd =’tesseract’,这里并没有指定文件路径

3、直接在pycharm中安装tesseract-cor失败

 

4、从网上找到相应的‘Tesseract-OCR’下载安装(寻找对应版本):

地址:https://github.com/tesseract-ocr/tesseract/wiki

Windows为例:

点击Tesseract at UB Mannheim

 找到符合自己电脑的下载

 

5、下载完后安装Tesseract-OCR

 

 

选择自己安装的目录(要添加到环境变量里面去),一直下一步就完成了

 6、添加到环境变量的系统变量(PATH)去

7、增加一个TESSDATA_PREFIX变量名,变量值还是我的安装路径C:\Program Files\Tesseract-OCR\tessdata这是将语言字库文件夹添加到变量中;

8、打开终端,输入:tesseract -v,可以看到版本信息

9、在pytesseract库下的pytesseract.py文件中找到tesseract_cmd = ‘tesseract’,修改成            tesseract_cmd =r’C:\Program Files\Tesseract-OCR\tesseract.exe’

(刚才安装的路径下)

10、再去运行程序

可以简单识别验证码,没有报错了

作者:小邝小邝
链接:https://www.jianshu.com/p/93ab58dea50f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

Python tesseract is not installed or it’s not in your path 错误解决方案_tesseract is not installed or it's not in your pat-CSDN博客

mikel阅读(260)

来源: Python tesseract is not installed or it’s not in your path 错误解决方案_tesseract is not installed or it’s not in your pat-CSDN博客

使用 pytesseract.image_to_string() 函数时,报错如下:

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it’s not in your path
原因是没有找到 Tesseract-OCR\tesseract.exe 的位置

打开pytesseract源码

查找 tesseract_cmd = ‘tesseract’

发现上面有一行注释 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY

由于 TESSERACT 所在目录不同,需要手动更改目录

此行修改为

tesseract_cmd = r’C:\Program Files (x86)\Tesseract-OCR\tesseract.exe’

如果没有Tesseract-OCR 需要手动安装

http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe

下载完安装即可,默认路径 C:\Program Files (x86)\ 下面

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_42184699/article/details/92575404

十种方式拼接Python字符串_python string 拼接-CSDN博客

mikel阅读(277)

来源: 十种方式拼接Python字符串_python string 拼接-CSDN博客

字符串是所有编程语言中都有的基本变量的类型,程序员基本每天都在和字符串打交道。

本篇文章我们一起细数Python中的各种字符串拼接方法。每种字符串拼接方式的使用场景各不相同,我们可以在开发过程中灵活运用。

 

一、用逗号“,”拼接

 

 

运行结果:

 

用逗号拼接的结果中,相邻的两个字符串之间会有空格。

二、空格自动拼接

 

运行结果:

 

三、多行字符串自动拼接

 

运行结果:

 

多行字符串之间会有反斜杠“\”作为连接,自动拼接后,多行字符串会直接连在一起,中间没有空格,不能通过多个变量名来进行多行拼接。

所以我们在编程中,一行写不完的字符串可以换行,最后的结果是一样的。

四、通过加号“+”拼接

 

运行结果:

 

加号拼接的结果也是两个字符串直接拼接在一起,中间没有空格。

五、通过乘法“*”进行拼接

 

运行结果:

a-a-a-a-a-a-a-a-a-a-

Python中一个字符串与整数相乘的结果为字符串拼接整数次。

六、字符串格式化操作符%拼接

 

运行结果:

 

%s,%d,%f的作用是占位作用,然后在字符串后面跟一个%,再在后面写拼到占位位置的内容。

%s: 将一个字符串拼接到前面的字符串中

%d: 将一个整型数字转换成字符串拼接到前面的字符串中,可以设置整数的位数,前面补0

%f: 将一个浮点型数字转换成字符串拼接到前面的字符串中,可以设置小数点后的位数,后面补0

七、通过str.format()方法拼接

 

运行结果:

 

format()方法可以说是最通用(基本是万能的)的拼接方法了,不管后面拼接的数据是字符串还是数字,甚至元组、列表、字典、集合等数据类型,format统统都可以拼接到字符串中。

在要拼接的字符串中使用大括号{}来给拼接内容占位,后面按顺序依次传入对应的内容即可,也可以给每个占位的{}起一个变量名,然后通过关键字参数传递给format()。

八、通过str.join()方法拼接

 

运行结果:

 

str.join()最常用来将一个列表内的字符串拼接成一个大的字符串,列表中的每个元素都需要是字符串类型。

前面的str是拼接时用于连接的字符串,列表的每两个元素之间使用str来连接。

九、通过string模块中的Template对象拼接

 

运行结果:

 

Template的实现方式是首先通过Template初始化一个字符串对象t,在创建对象t时,在字符串中使用 ${变量名} 的方式来给拼接内容占位。

也可以省略{},直接 $变量名,只是没有{}时变量名后面一定要有空格,且可读性不如有{}的好。

通过调用t对象的substitute或safe_subsititute方法,将拼接内容通过关键字参数的方式依次传递进去,实现在指定的位置拼接字符串。

这种方法与上面的format()方法一样,不管传入的拼接内容是什么数据类型,统统都可以拼接。

十、通过F-strings拼接

 

运行结果:

在Python3.6版本中,提出了一种新型字符串格式化机制,被称为“字符串插值”或者F-strings,F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化。而且F-strings的运行速度很快,比%和format()这两种格式化方法都快得多。

上面的代码中直接在f后面跟字符串,然后在字符串中用{}传入拼接内容。

厉害的是,在F-strings中我们可以执行函数:

 

运行结果:

 

将函数传入{}中,最后拼接到字符串中的内容是函数执行的结果!

现在我们已经细数了十种Python字符串的拼接方式,希望您可以在使用中融会贯通,灵活运用。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/sinat_38682860/article/details/94332899

Python字符串替换的3种方法_python 字符串替换-CSDN博客

mikel阅读(324)

来源: Python字符串替换的3种方法_python 字符串替换-CSDN博客

Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下几种替换字符串的方法,本文主要介绍前三种。

replace方法(常用)
translate方法
re.sub方法
字符串切片(根据Python字符串切片方法替换字符)
1.replace方法
Python replace方法把字符串中的old(旧字符串) 替换成new(新字符串),如果指定第三个参数max,则设置替换次数不超过 max 次。

str.replace(old, new[, max])

示例1

在该示例中,出现的两个单词Hello都被替换为Hi。

#原字符
msg = “Hello world! Hello Python!”

# 替换字符,字符串直接调用replace方法
msg2 = msg.replace(‘Hello’, ‘Hi’)

print(msg2)
#输出
Hi world! Hi Python!

示例2

可以直接str.replace方法。它将我们进行替换的字符串作为第一个参数。结果和示例1一样。

msg = “Hello world! Hello Python!”

msg2 = str.replace(msg, ‘Hello’, ‘Hi’)

print(msg2)
#输出
Hi world! Hi Python!

示例3

我们可以用换行符替换每个逗号,并设置替换次数

data = “1,2,3,4,5”

# 替换次数为3次
data2 = data.replace(‘,’, ‘\n’, 3)

print(data2)
#输出

示例4

在该示例中,我们替换最后一次出现的单词Hello。需要结合Python rfind()方法。rfind()方法是指返回字符串最后一次出现的位置。

msg = “Hello world! Hello Python!”

# Python rfind()返回字符串最后一次出现的位置
idx = msg.rfind(“Hello”)
print(idx)

# 提取前一部分字符不替换,取后一部分字符进行替换
# 这里用到了字符串切片的方式
msg2 = msg[:idx] + str.replace( msg[idx:] , “Hello”, “Hi”)

print(msg2)
#输出
13
Hello world! Hi Python!

示例5

我们可以将replace方法链接起来进行多次替换。

msg = “Hello world! Hello Python!”

msg2 = msg.replace(‘Hello’, ‘Hi’).replace(‘!’,’.’)

print(msg2)
#输出
Hi world. Hi Python.

2.translate方法
Python的translate函数与replace函数一样,用于替换字符串的一部分。Translate只能处理单个字符,但translate可以同时进行多个替换任务。在使用translate函数进行转换之前。需要一个翻译表table,翻译表用于表示字符的替换关系,这个翻译表可以通过maketrans()方法获得。这个翻译表可翻译字符数为256,翻译表中的字符都要包含在ASCII码表(含扩展)中。translate()方法语法为:

str.translate(table)

示例1

msg = “Hello world! Hello Python!”

# intab中的字符与outtab中的字符一一对应
intab = “aeiou”
outtab = “12345”
# 制作翻译表
trantab = str.maketrans(intab, outtab)
# trantab中的字符都会用ASCII码表示
print(trantab)
#Python小白学习交流群:711312441
msg2 = msg.translate(trantab)

print(msg2)
#输出
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
H2ll4 w4rld! H2ll4 Pyth4n!

3.re.sub 替换字符串
我们可以使用正则表达式来替换字符串。Python的re库就是常用的正则表达式匹配库(建议学一学很有用)。re库使用见模式匹配与正则表达式笔记。这里主要使用re.sub函数替换字符串。re.sub()方法需要传入两个参数。第一个参数是一个字符串,用于取代发现的匹配。第二个参数是一个字符串,即正则表达式。sub()方法返回替换完成后的字符串。

示例1

import re

msg = “Hello world! Hello Python!”
# 设置要替换的字符
namesRegex = re.compile(r’Hello’)
# 用’Hi’替换msg中已经设置好要替换的字符
namesRegex.sub(‘Hi’, msg)

#输出
‘Hi world! Hi Python!’
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qdPython/article/details/130137565

win10系统中windows defender antivirus占用内存很高如何解决-系统城

mikel阅读(306)

来源: win10系统中windows defender antivirus占用内存很高如何解决-系统城

win10系统用户在查看任务管理器进程情况的时候,发现有一个windows defender antivirus进程占用了很高的内存,导致电脑变得卡顿了,该如何处理呢,不用担心,今天系统城小编就给大家分享一下win10系统中windows defender antivirus占用内存很高解决步骤。

具体解决方法如下:

1、按下“Win+R”打开“运行”;

win10系统中windows defender antivirus占用内存很高如何解决

2、输入 gpedit.msc;

win10系统中windows defender antivirus占用内存很高如何解决

3、点击“计算机配置”—>“管理模板”;

win10系统中windows defender antivirus占用内存很高如何解决

4、点击“Windows组件”;

win10系统中windows defender antivirus占用内存很高如何解决

5、双击进入“Windows definder防病毒程序文件夹”;

win10系统中windows defender antivirus占用内存很高如何解决

6、点击“扫描”;

win10系统中windows defender antivirus占用内存很高如何解决

7、双击进入“指定扫描期间占用CPU最大百分比”;

win10系统中windows defender antivirus占用内存很高如何解决

8、设置指定百分比的值后点击“确定”即可。

win10系统中windows defender antivirus占用内存很高如何解决

上述就是win10系统中windows defender antivirus占用内存很高的详细解决方法,可以通过上面的方法来进行解决,希望帮助到大家。

百度地图web API定位不准,定位偏移问题处理_百度地图api定位不准解决-CSDN博客

mikel阅读(319)

来源: 百度地图web API定位不准,定位偏移问题处理_百度地图api定位不准解决-CSDN博客

百度地图浏览器API 获取GPS定位是根据调用浏览器核心获取GPS,部分手机型号定位不准,主要是因为部分手机采用的是GOOGLE GPS坐标格式、部分手机用的是原生坐标格式

这两种格式百度地图无法判断,默认是按照原生坐标格式,进行转换成百度地图的坐标格式,而后在进行展示。废话不多说了,贴代码。

解决问题:

根据代码navigator.geolocation.getCurrentPosition获取浏览器坐标地址,然后再判断坐标格式、再通过格式进行转换。

var type3 = [550, 30];//设定 google gps格式转换
var transTypesParam = “”;

function getLocation(){
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
if (navigator.geolocation){ //用浏览器获取坐标地址
navigator.geolocation.getCurrentPosition(showPosition,showError,options);
}else{
alert(“浏览器不支持地理定位。”);
}
}

//获取浏览器GPS成功
function showPosition(position){
var x = position.coords.longitude; //经度
var y = position.coords.latitude;//纬度

transTypesParam = getTransType(position.coords.accuracy);//该方法很重要,用来判断手机定位格式,方法在下方
if($(“#testInfo”) != null && $(“#testInfo”).length >0) {
$(“#testInfo”).html(“accuracy : ” + position.coords.accuracy + “x : ” + x + ” y : ” + y);
}
var ggPoint = new BMap.Point(x,y);
showMap(ggPoint, true);//显示地图坐标
}

//获取失败,失败后用百度地图自带的方法,但是定位会不准
function showError(error){

var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
showMap(r.point, false);
}
else {
alert(‘定位失败:’+this.getStatus());
}
},{enableHighAccuracy: true})

if($(“#testInfo”) != null && $(“#testInfo”).length >0) {
switch(error.code)
{
case error.PERMISSION_DENIED:
$(“#testInfo”).html(error.code + “User denied the request for Geolocation.”);
break;
case error.POSITION_UNAVAILABLE:
$(“#testInfo”).html(error.code + “Location information is unavailable.”);
break;
case error.TIMEOUT:
$(“#testInfo”).html(error.code + “The request to get user location timed out.”);
break;
case error.UNKNOWN_ERROR:
$(“#testInfo”).html(error.code + “An unknown error occurred.”);
break;
}
}

}
function getTransType(accuracy) {
if(window.localStorage){
var transType = localStorage.getItem(“xdlcfwapp_transType”);
if(transType != null && transType != “”) {
return transType;
}
}

for(var i=0; i<type3.length ; i++) {
if(type3[i] == accuracy) {
localStorage.setItem(“xdlcfwapp_transType”, 3);
return 3;
}
}
localStorage.setItem(“xdlcfwapp_transType”, 1);
return 1;
};

var bm = null;
function showMap(ggPoint,isTrans) {

// 百度地图API功能
bm = new BMap.Map(“container”);
bm.centerAndZoom(ggPoint, 15);
bm.enableScrollWheelZoom(true);
if(isTrans) {
bm.addControl(new BMap.NavigationControl());

//坐标转换完之后的回调函数
translateCallback = function (data){
if(data.status === 0) {
showPositionIcon(data.points[0]);
queryMarkers();
}
}

setTimeout(function(){
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, transTypesParam, 5, translateCallback)
}, 1000);
} else {
showPositionIcon(ggPoint);
queryMarkers();
}
}
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/cailiheng536/article/details/80591671

基于uni-app+uni ui考勤打卡H5项目 定位打卡,日历打卡记录,考勤记录,绩效(地图位置)等_uniapp 外勤签到-CSDN博客

mikel阅读(351)

基于uni-app+uni ui考勤打卡H5项目
功能点:定位打卡,迟到,外勤,日历打卡记录,请假,出差,补卡,考勤记录,绩效(地图位置)等;
前言
提示:
1.该项目所有数据基于前端为数据,后期可直接调用接口替换使用;
2.该项目使用uni-ui+vue开发;
3.推荐使用Hbuilder X 开发工具;
4.直接从github拉取后可在Hbuilder X 正常运行,但是部分使用全局导入的uniui组件会报错;
5.部分使用npm install 下载可能会报错(这个可能是你的npm版本问题):

直接用去uni-app插件市场导出/下载zip;
解决npm版本问题(有伙伴知道望不吝赐教);
github拉取node_modules

二、使用步骤
1.拉取代码(github地址:https://github.com/navy-c/kaoqin_app.git)
2.HbuildX 导入项目,运行
目录结构(伙伴自己理解一下,没太多精力写了)

该项目只是模板,几天内赶出来的,很多细节没处理,代码没优化,伙伴们自己处理一下,里面有很多注释的方法,感兴趣的可以打开看看
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_45118394/article/details/117033005

数据恢复利器:通过frm文件恢复数据表的sql结构语句_dbseeker_frm-CSDN博客

mikel阅读(353)

dbseeker_frm1.0.zip

来源: 数据恢复利器:通过frm文件恢复数据表的sql结构语句_dbseeker_frm-CSDN博客

如果数据库崩溃又没有做数据备份,只有.frm表结构文件,怎么做表的结构恢复?下面介绍两种方法

了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构。

第一种方法:手动恢复
工具/原料
MYSQL数据库.frm文件

命令行工具

一、InnoDB表结构的恢复
假定:MYSQL数据库已经崩溃,目前只有对应表的frm文件,大家都知道,frm文件无法通过文本编辑器查看,因为如果不恢复,基本上来说对我们没什么用。这里我们为了测试,假定该文件为test_innodb.frm

 

该表创建脚本如下:

 

mysql> create table test_innodb

 

-> (A int(11) default NULL,

-> B varchar(30) default NULL,

-> C date default NULL) engine=innodb;

Query OK, 0 rows affected (0.05 sec)

在新的正常工作的MYSQL环境下建立一个数据库,比如aa.

在aa数据库下建立同名的数据表test_innodb,表结构随意,这里只有一个id字段,操作过程片段如下:

 

mysql> create table test_innodb (id bigint not null)engine=InnoDB;

Query OK, 0 rows affected (0.09 sec)

停止mysql服务器,将系统崩溃后留下的test_innodb.frm文件拷贝到新的正常数据库的数据目录aa下,覆盖掉下边同名的frm文件,重新启动MYSQL服务。

END

二. MyISAM表结构的恢复
同样先假定需要恢复的表的FRM文件为test_myisam.frm,表结构为

 

mysql> create table test_myisam

-> (A int(11) default NULL,

-> B varchar(30) default NULL,

-> C date default NULL) engine=myisam;

Query OK, 0 rows affected (0.05 sec)

直接将test_myisam.frm拷贝到正常数据库对应的数据目录下。这时测试

 

mysql> show tables;

+————–+

| Tables_in_aa |

+————–+

| test_innodb |

| test_myisam |

+————–+

3 rows in set (0.00 sec)

 

mysql> desc test_myisam;

ERROR 1017 (HY000): Can’t find file: ‘test_myisam’ (errno: 2)

 

发现只能通过show tables命令看见表名,但是表结构还是没有恢复,desc命令报错。

在与test_myisam.frm同一目录建立以下2个文件,文件内容可以为空:

 

test_myisam.MYD test_myisam.MYI

在MYSQL命令行使用MYSQL本身的数据表恢复命令repair命令恢复表,如下:

 

mysql> repair table test_myisam USE_FRM;

+—————–+——–+———-+———-+

| Table | Op | Msg_type | Msg_text |

+—————–+——–+———-+———-+

| aa.test_myisam | repair | status | OK |

+—————–+——–+———-+———-+

1 row in set (0.00 sec)

 

根据结果可以知道,恢复命令执行成功

第二种方法:利用工具快速恢复

下载使用:dbseeker_frm1.0.zip 工具

下载地址:

 

解压后执行: dbseeker_frm.jar文件

 

选择要恢复的frm文件即可以生成对应的SQL建表语句。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/whirlwind526/article/details/118073688

解决npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.-CSDN博客

mikel阅读(441)

来源: 解决npm warn config global `–global`, `–local` are deprecated. use `–location=global` instead.-CSDN博客

在安装配置node时,cmd检查node没问题

 

但是检查npm就出现npm warn config global `–global`, `–local` are deprecated. use `–location=global` instead.的报警

 

问题出现在,以前版本npm的命令一般时XXX -g 但是随着版本更替,这个老方法被弃用了,这时

我们需要修改两个文件npm和npm.cmd

将npm文件的第23行,修改成下图样式,命令如下,可以直接粘贴

prefix –location=global

将npm.cmd文件的第12行,修改成下图样式,命令如下,可以直接粘贴,修改完保存。

prefix –location=global

2. 此时,重新打开cmd,npm -v就不会报错了(如果还报错,可以尝试重启电脑一下,没有重启解决不了的事情,哈哈)

但是, 在使用npm一些常用命令时,使用XXX -g 还是会报错,这是由于高版本-g命令已经被弃用,所以应该使用现有方法XXX –location=global

其实报错内容就告诉我们了,npm WARN 配置全局 ‘–global’, ‘–local’ 已弃用。

请改用“–location=global”。

例如: 安装常用express模块,应该用下面命令行

npm install express -g
npm install express –location=global //安装常用express模块
最后,以查看根目录为例,演示一下该命令

 

解决问题,完结撒花““~~~~~
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/zhangkai__/article/details/125549603