pip安装第三方模块老是报错?多种常见错误,进来看看解决方案!

常见程序问题解决办法 专栏收录该内容
2 篇文章 0 订阅

pip是程序员安装Python第三方模块的首选程序,它可以安装Python的第三方模块,
假设我们需要安装一个pyinstallerpyinstaller是个非常好用的模块,可以将python源代码文件打包为exe可执行文件,这个模块需要用户自行下载,通常使用pip install pyinstaller,但是在这个过程中会遇到各种各样的异常和错误,所以我准备对这个命令进行添加和修缮。首先在这里给大家列举几种常见错误和解决方案:

1、Read timed out

这是最常见的错误,错误信息如下pip下载pyinstaller出现操作超时错误 上面的图片中遇到了两个错误,请看最后一个错误的最后一行,上面写着Read timed out,这种现象发生的原因是因为国内的网络连接pypi的速度非常慢,毕竟人家是外国网站,还是非常不容易的。难道我们就放弃了吗,不!既然你说操作超时,就把超时时间延长,就能给我们更多的下载时间,就不会因为异常打断下载。

timeout参数延长超时时间

我们可以用pip -h来获悉pip可以使用得到设置,可以发现有一个叫--timeout的参数,这个设置接受的参数是一个数字,单位为秒,阅读它的解释,我们可以知道这个可以用来设置超时时间,默认为15秒。
单纯Read timed out解决办法

所以,现在我们需要改变命令:
原:pip install pyinstaller
现:pip install pyinstaller –timeout 480
这里将timeout设置为480秒,也就是八分钟,绝大多数电脑八分钟进度条都会动一下,一旦进度变化,八分钟就会重新计算,这样,既能享受到一步完成的喜悦,又能避免异常终止。

硬核download指令

对于那些八分钟还是超时的慢机 ,我们要使出杀手锏:download 指令。
pip install xxx 是有timeout限制的,而 pip download xxx没有,也就是说,无论电脑怎么慢,timeout永远是无穷大,不会有超时。

但是download并不是终点download结束之后仍然要输入install的指令,因为download只负责下载安装包

防超时换源下载

这个是最省时间的方法,更改下载地址,从国内的镜像网站下载就会快很多,所以我们要给pip进行配置。我们需要在C:\Users[你的用户名]\AppData\Roaming中创建配置文件,pip能够扫描到这个文件夹下的配置,但是原本它是不存在的,所以我们要创建pip文件夹用于放置配置文件。
1、在C:\Users[你的用户名]\AppData\Roaming目录下创建名为pip的文件夹。(AppData这个文件夹是隐藏的,你得让它显示出来)
2、在创建的pip文件夹内创建pip.ini文件,写入以下文字:

[global]
timeout = 480
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/#此为清华大学的镜像源
trusted-host = https://pypi.tuna.tsinghua.edu.cn/#写上这个就不会收到不信任网站警告

在这里我们看到了熟悉的timeout,再加上网址,pip就会从这个网址下载,这样速度会超大幅度提升,差不多1秒左右就能下载一个包(不含安装,其实由于国内下载速度很快,不加timeout也可以)

如果出现了以上方法不能解决的问题,说明你可能出现了安装异常,timeout对于以下异常是没有效果的

2、Installing build dependences…error

接下来是timeout不能解决的错误。
这个错误也比较常见,每当pip下载完安装包之后,要进行安装操作,尤其是像pyinstaller这种以.gz结尾的安装包,必须经过这一步,(以.whl结尾的文件安装时不太容易出错)。这一步报错,通常出现在Windows7或者是较低版本的Python环境下,有时候表现为“进度圈转不动”。
经过一定的研究,原因是有一个东西叫做setuptools的工具版本太低,需要更新,只要单独拎出来安装就行了,但是命令并不是简单的pip install setuptools,而是更新指令:
pip install --upgrade setuptools --timeout 480
这个指令和更新pip的指令是相似的,不要忘了加上timeout——如果可能超时的话,但是你执行了上述换源操作后就不需要了。

很多问题都是因为setuptools版本太低的问题导致的,遇到类似的情况,通常第一反应去更新setuptools,这是使用pip的一个良好的习惯。

3、Getting requirements to build wheel…error

这种错误造成的原因仍然是setuptools的版本太低,只不过是它的另一种表现形式,新版本的setuptools有新功能,一些包安装就需要这些新功能,如果你的版本较低,就没有这个功能,就会报AttributeError:
错误报告
核心的错误仍然是后面几行:
AttributeError: module ‘setuptools.build_meta’ has no attribute ‘__legacy__’,你的电脑可能报的不一定是’__legacy__’,但是原因是一样的,要更新setuptools,使用指令:
pip install --upgrade setuptools

4、Prepareing wheel metadata…error

这个比较常见,在卸载了某些大型模块之后(比如pyinstaller)再次安装可能出现这个问题:pyinstaller安装错误2而这种情况比较特殊,错误信息的关键是倒数第四句,“invalid command bdist_wheel”

它是因为缺少wheel而造成的,此处的例子是pyinstaller,这个叫wheel的东西大概率是在卸载pyinstaller之后顺带卸掉了,我们要把它补回来。

缺少wheel,我们就安装wheel,使用指令:
pip install wheel
然后我们继续安装就能够成功

特殊问题:更新最新版pip出现ValueError: Unable to find resource t64.exe in package pip._vendor.distlib

当你pip版本实在太低的时候,它提示你更新,更新pip也有可能报错,我们需要用到备用pip,它的名字叫pip3,用这个方法来进行pip的升级,使用指令:pip3 install --upgrade pip,然后出现文字:
Successfully installed pip…
或者
Requirements already up-to-date:…
就行了,如果出现了错误,应该卸载setuptools之后重装,输入指令:pip uninstall setuptools,然后再次输入上述指令,完成后再把setuptools装回来。

好了,这就是给大家列举的五种异常和总计六种解决方法,希望能够帮到大家,如果遇到本文提及以外的异常,欢迎私信或者留言。

本文为作者原创,未经作者允许,禁止转载。

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值