吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1654|回复: 21
收起左侧

[Python 转载] 记一次自行修复pip安装模块报错

[复制链接]
Anekys 发表于 2021-8-17 13:15
在一次执行pip install wordcloud安装模块时,突然发现,pip安装竟然失败了
pip报错.PNG
这是我第一次修改完pip的源以后安装模块报错

按照以往的一贯做法,将问题提交给百度,就能查到一大堆的解决办法,尽管很多时候他们的办法都是同一个办法
我在百度中键入了pip 安装Wordcloud失败怎么办 成功查到三种方法
1.安装离线文件,也就是whl文件,我一开始也是对这个办法信心满满,但是很可惜,它失败了
2.指定其他源再次尝试安装 ,这个直接pass,我已经换过国内源了
3.使用sudo pip install -r requirements.txt  安装依赖包后再安装Wordcloud 我是Windows环境,同样直接pass


在意识到百度不是万能的以后,我重新将注意力聚焦到错误本身上
pip报错.PNG

可以很明显的看到错误代码,以及底下的log字样,和错误位置
安装以往调程序的习惯,我先去查了log文件,不过并没有找到这个文件
这时再看错误代码,emmmm代码是1?然后跟了一大堆路径和代码并且是未格式化的状态,完全没有耐心看下去
直接复制ERROR后面的错误代码扔到百度试试,
结果还是和之前百度的都差不多,大多都是安装离线文件,这个办法已经被pass了,唯一一个看起来好像有参考价值的答案,报错信息却不一样,但是却给了我一些启发
可以看到,错误代码上面显示的错误内容是AttributeError: 'str' object has no attribute 'decode'
而且标明了位置在192行
按照这个路径成功的找到了报错的py文件,和具体的代码内容

pip报错.PNG
报错显示这里没有decode方法,按照以往的Python经验,可能是因为这个py文件使用Python2写的,在Python2的时候可以直接对str进行decode而到了Python3的str则没有了这个方法,只有将str给encode之后才能decode
考虑到这个py文件是pip要用到且Python自带的,先将其备份一份然后在decode前面加上一个.encode()然后进行保存

pip报错.PNG
保存之后再次执行pip install wordcloud
pip报错.PNG
再一次报错了,但是不要急,我们看看报错的详细信息,发现错误信息还是没有decode方法,也还是那个py文件,但是位置却发生了变化
这次报错的是272行而不再是192行了,这恰恰说明,刚才的修改是有效的.
pip报错.PNG
按照修改192行的办法如法炮制272行的位置

然后再一次pip install wordcloud
pip报错.PNG
成功安装Wordcloud模块~~~~~



最后总结:
其实很多时候像我这样的新手在面对编程语言自身出现的一些问题时都是蛋疼的一批,
毕竟在心里面还是觉得自己很菜而像Python 这种大佬,大厂,大企业,做出来的产品习惯性默认是对的,总觉的是自己的问题,环境没配置对,语言没有安装好等等.但是大佬也是人,也会有犯错的时候,像这次这个很明显就是因为Python2到Python3过渡而造成的遗留问题,自己手动修改一下py文件就可以修复.
遇到问题时其实更应该去敢想敢做,虽然世界上没有后悔药,但是在计算机的世界里,你可以先把文件备份,给自己做一颗后悔药,然后放心大胆的去造作就可以了


谨以此文勉励所有的新手

免费评分

参与人数 4吾爱币 +6 热心值 +3 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
renpeng009 + 1 我很赞同!
lendone + 1 用心讨论,共获提升!
三滑稽甲苯 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jamescookers988 发表于 2022-6-26 23:35
Anekys 发表于 2021-8-17 17:27
原因就是pip调用的那个msvn.py里面的代码直接对字符串进行了decode操作,但是实际上Python3中字符串自身已 ...

Traceback (most recent call last):
  File "d:\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "d:\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "D:\Python39\Scripts\pip3.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'pip'
我现在报这个错误,头疼中,
 楼主| Anekys 发表于 2021-8-17 17:27
sutramusic 发表于 2021-8-17 15:57
原因是什么呢?还没有太懂

原因就是pip调用的那个msvn.py里面的代码直接对字符串进行了decode操作,但是实际上Python3中字符串自身已经不带decode方法了但是字节码是可以进行decode的,所以先给他encode成字节码以后再decode就可以了
kicebeauty 发表于 2021-8-17 14:14
没人维护说明这个模块已经弃用,建议直接找新模块代替。
三滑稽甲苯 发表于 2021-8-17 14:30
思路不错,值得借鉴
sutramusic 发表于 2021-8-17 15:57
原因是什么呢?还没有太懂
anguszhao 发表于 2021-8-17 16:02
我之前好像也遇到过类似的问题,感谢楼主
huangjun0129 发表于 2021-8-17 16:34
大佬牛X,棒棒哒~~~~
lendone 发表于 2021-8-17 16:39
收藏一下,以后说不定会遇到
renpeng009 发表于 2021-8-17 16:51
我自己试了一下,直接安装成功,没有报错。python3.8

傲游截图20210817165043.png
大白baymax 发表于 2021-8-17 17:08
生命苦短,我学python.
 楼主| Anekys 发表于 2021-8-17 17:25
renpeng009 发表于 2021-8-17 16:51
我自己试了一下,直接安装成功,没有报错。python3.8

我是Python3.9 也可能是因为我的pip是重新安装的吧
之前有一次升级pip因为权限不足把旧的文件删掉后新的安装不上
然后手动安装的pip
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-3 19:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表