Python 解决安装三方包失败的问题

文章讲述了在Python开发中遇到的pip安装问题,如无法访问源服务器、不同Python版本的兼容、依赖冲突,以及提供whl和源码安装的解决方案,以及处理没有访问权限和MATLAB依赖安装的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 安装

此时可以尝试的方案有两种,一种是本地安装 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

没有访问权限

这种情况比较罕见。唯一遇到的一次是使用 matlab。因为 python 调用 matlab 需要先安装对应依赖库,这些库没有放到 python 官方仓库。而是需要执行本地的安装脚本实现依赖库的安装。

有一次做基于 gitlab 的 CI/CD,部署 python(使用 conda 管理环境)。因为 gitlabrunner 用户的权限限制,导致安装 matlab 依赖失败。因为 Windows Server 服务器的策略限制,导致 Invoke-Command (可以用指定的用户运行指定的脚本/命令)这种方式不能使用。

最用使用 PYTHONPATH 这种方式曲折实现。具体方法是,安装 matlab 依赖时可以指定目录。当安装完成后给 gitlabrunner 账户添加这个路径的访问权限。然后把这个路径添加到 PYTHINPATH 中,这样就可以实现对应的环境可以使用 matlab 依赖库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值