(方法是独特的,道理都是相通的。pip install xx的报错原因都可以从网络、前置依赖等方面入手)
问题背景:
想要写一个py的小应用
需要用到pyinstaller库来将py文件转化为exe文件
pip install pyinstaller一直丢失连接
1.查看报错,分析是失败原因:
最下方报错提示:
[notice] A new release of pip is available: 24.0 -> 24.2 #pip可升级为新的release版本: 24.0->24.2
[notice] To update, run: python.exe -m pip install --upgrade pip #更新pip,运行命令python.exe -m pip install --upgrade pip
提示等级为notice,所以不是关键问题,无需更新pip版本
往上找问题原因:
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
结合报错原因和下载中断的提示,可以知道是因为网络原因导致超时
2.得知报错原因,尝试解决方案:
因为是网络原因,所以尝试切换外网【1】进行下载:
无法网络连接,说明外网跟python库是隔离状态。
3.无计可施,寻求帮助:
尝试在网上查找的方法:
首先执行:
pip install wheel
安装好wheel【2】库后执行,从pypi镜像【3】下载
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
4.安装成功,完美解决:
备注:
【1】外网只是一个代称,不断的切换新的网络环境,以测试是否是因为网络隔离原因导致无法下载
【2】wheel,轮子,python的组件,可以用来优化pip下载管理,可以理解为python的360软件管家
解决方法来自:https://blog.csdn.net/qq_44458899/article/details/107879611
wheel相关介绍文章:https://cloud.tencent.com/developer/article/1683436
【3】pypi是一个镜像,其实猜测根本原因是pip的原镜像无法下载,切换镜像后即可下载,wheel其实就是起优化作用(暂未测试猜想)