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

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

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 依赖库。

Python开发安装软件包时可能会因为依赖项问题导致安装失败。为了解决和检查依赖项问题,你可以按照以下步骤进行操作: 1. 仔细阅读错误信息:通常Python安装软件失败时会在控制台输出错误信息,这些信息会告诉你缺少哪个具体的依赖项或版本不兼容等问题。 2. 检查依赖项版本:确保你的Python环境的依赖项版本符合所尝试安装的要求。你可以使用如下命令查看已安装及其版本: ``` pip list ``` 或者对于某些,你可能需要查看内的`requirements.txt`文件或官方文档来获取依赖项及其版本信息。 3. 使用虚拟环境:为了避免全局环境下的依赖冲突,推荐使用虚拟环境来安装和管理Python。可以使用`virtualenv`或`conda`创建独立的环境。 4. 使用`--no-deps`选项:在使用`pip`安装软件包时,可以添加`--no-deps`选项来避免安装依赖,这样可以检查你的环境是否有合适的依赖项已经存在: ``` pip install some-package --no-deps ``` 5. 更新pip:确保你使用的pip是最新版本,旧版本pip可能无法正确处理依赖关系。你可以使用以下命令来升级pip: ``` pip install --upgrade pip ``` 6. 使用其他工具:除了pip之外,还可以使用如`conda`或`easy_install`等工具来安装,有时候这些工具可以提供不同的依赖解决方案。 7. 手动安装依赖:如果上述方法都失败,你可以尝试手动下载和安装依赖项,然后再尝试安装原来的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值