很奇怪,之前使用 pip install 来安装库一般都没什么问题,今天突然无论安装什么库(只要使用到 pip install)都会报错,哪怕就是进行自我更新(python -m pip install --upgrade pip
)也会报错,报错内容如下:
python
ndor.urllib3.connection.HTTPSConnection object at 0x000001AE4EF5E690>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))': /simple/pip/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._ve
ERROR: Could not find a version that satisfies the requirement request (from versions: none)
ERROR: No matching distribution found for request
哪怕就是我安装我之前已经成功安装好的软件包,比如 request 库,依旧是报这个错:
尝试了一些方法:
(1)换源
python
python -m pip install --upgrade pip -i https://pypi.douban.com/simple
python
python -m pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple/ fenjing
试了豆瓣和清华的国内 pip 源,但是都没有解决
(2)设置超时时间
python
python -m pip --default-timeout=200 install fenjing
依旧没有解决(这个主要是用于解决网络不好的情况)
最终的解决方案是下面这条命令:
python
python -m pip install --upgrade pip setuptools
同时更新 pip 和 setuptools
真的很奇怪,我单独更新 pip 没办法执行,同时更新这两个就成功了
之后我再次装我需要的库,一切又恢复了正常
可能原因:
依赖关系问题:
pip 和 setuptools 之间存在依赖关系,某些版本的 pip 需要特定版本的 setuptools 才能正常工作,单独更新 pip 可能导致与现有的 setuptools 版本不兼容,而同时更新两个工具可以确保它们之间的版本兼容性。
更新顺序问题:
新版本的 setuptools 可能包含修复旧版本中的错误,这些错误可能会影响 pip 的正常更新。通过同时更新,可以确保使用最新的修复和改进。
缓存和路径问题:
在更新 pip 时,系统可能会使用缓存或系统路径中的旧版本 setuptools,这可能导致更新失败,通过同时更新两个工具,可以确保它们都被正确更新,并避免旧版本干扰。
解决潜在的冲突:
有时,包管理工具(如 pip 和 setuptools)之间的冲突可能会导致更新失败,通过同时更新,可以解决这些冲突,确保两个工具都能正常工作。