pip 安装三方包失败,常见的情况有三种:不能访问源所在服务器;Python 版本不支持;和本地版本冲突。
不能访问源服务器
对于这张问题,有两种解决方法
# 方法一
pip config set global.index-url <源服务器>
pip config set install.trusted-host <源服务器域名>
pip install -i <源服务器> --trusted-host <源服务器域名> <package-name>
这两种方式都可以指定新的源服务器,特别是有自建的源服务器时,可以使用这两种方法指定使用哪个源。
Python 版本不支持
这种情况最好的方法就是使用对应版本的 python。
多个 python 环境管理,最好用的工具就是 conda,我们可以去官网,根据需要选择 Miniconda 或者 Anaconda。
和本地版本冲突
对于这种情况,一种是卸载本地重新安装,另一种是使用 conda 管理多个环境。
常用的相关参数有
# 忽略本地缓存
--no-cache-dir
# 强制重新安装
--force-reinstall
# 升级本地缓存
--upgrade
# 如果网速慢,经常因为超时加载失败,可以使用这个参数
--default-timeout=100000
上面这几个参数可以解决绝大多数依赖库冲突的问题
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
pyDOE from https://files.pythonhosted.org/packages/bc/ac/91fe4c039e2744466621343d3b8af4a485193ed0aab53af5b1db03be0989/pyDOE-0.3.8.zip#sha256=cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6 (from doepy==0.0.1):
Expected sha256 cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6
Got fa88f67415c0cd1b3c93643b2e8596e168ce2a6a26decaf7fb67e57b04b816d9
包括绝大多数上面这种报错。
但是,但是,但是,凡事有个但是。某些情况下,上面的 hash 不匹配的报错无法解决。原因未知。
终极方案
此时可以尝试的方案有两种,一种是本地安装 whl;另一种是从源码安装。
https://www.piwheels.org/ 这个网站可以搜索并下载指定库的 whl 版本。然后使用 pip install <path-to-whl>.whl
就可以安装。
源码安装
https://pypi.org/ 这个网站可以搜索并下载安装三方库的源代码。
源码里会有 setup.py
。通过下面的代码可以把源代码安装到本地
# 编译
python setup.py build
# 安装
python setup.py install