pip离线下载第三方库与查看python支持第三方库版本

问题

生产环境都是内网环境,无法直接使用pip安装第三方库,所以就需要在互联网环境下载离线安装包后,传输至生产环境安装。

另一个问题就是,生产环境与互联网环境python版本不同,pip版本不同,结果下载下的安装包会报错:xxx.whl is not a supported wheel on this platform

查看支持第三方库版本

在生产环境执行下面命令

# python交互模式下执行
>>> import pip
>>> print(pip.pep425tags.get_supported())
[('cp36', 'cp36m', 'manylinux1_x86_64'), ('cp36', 'cp36m', 'linux_x86_64'), ('cp36', 'abi3', 'manylinux1_x86_64'), ('cp36', 'abi3', 'linux_x86_64'), ('cp36', 'none', 'manylinux1_x86_64'), ('cp36', 'none', 'linux_x86_64'), ('cp35', 'abi3', 'manylinux1_x86_64'), ('cp35', 'abi3', 'linux_x86_64'), ('cp34', 'abi3', 'manylinux1_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'manylinux1_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'manylinux1_x86_64'), ('cp32', 'abi3', 'linux_x86_64'), ('py3', 'none', 'manylinux1_x86_64'), ('py3', 'none', 'linux_x86_64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

# ('cp36', 'cp36m', 'manylinux1_x86_64'): 表示适用于 Python 3.6 的 cp36 版本,使用 cp36m ABI,运行在 manylinux1_x86_64 平台上。
# ('cp36', 'cp36m', 'linux_x86_64'): 表示适用于 Python 3.6 的 cp36 版本,使用 cp36m ABI,运行在 linux_x86_64 平台上。
# ('cp36', 'abi3', 'manylinux1_x86_64'): 表示适用于 Python 3.6 的 cp36 版本,使用 abi3 ABI,运行在 manylinux1_x86_64 平台上。
# ('cp36', 'abi3', 'linux_x86_64'): 表示适用于 Python 3.6 的 cp36 版本,使用 abi3 ABI,运行在 linux_x86_64 平台上。
# 其他元组依次类推,涵盖了不同 Python 版本、ABI 和平台的组合。

# 这些标签用于确保下载的 Python 包是与你的 Python 版本和操作系统平台兼容的二进制文件。在使用 pip download 命令时,需要根据这些标签来指定要下载的包的适配版本,以保证下载的包能够在你的环境中正常使用。

执行结果就是支持的版本

指定版本离线下载

在互联网环境下执行下面命令进行下载,注意会将文件下载到命令执行时当前目录下。

# 比如我要下载paramiko库
pip download paramiko --python-version 3.6 --platform manylinux1_x86_64 --only-binary=:all:

# pip download: 用于下载 Python 包及其依赖项。
# paramiko: 要下载的包的名称。
# --python-version 3.6: 指定要下载的包适用的 Python 版本为 3.6。
# --platform manylinux1_x86_64: 指定要下载的包适用的操作系统平台为 manylinux1_x86_64,这是一个常见的 Linux 平台。
# --only-binary=:all:: 仅下载二进制文件,而不下载源代码。

生产环境安装

下载完成后,传输至生产环境,我这里是/opt目录下,再进行安装

cd /opt
pip install *.whl

有两种方式可以在离线环境中安装 Python 第三方库: 1. 使用 wheel 文件 在有网络连接的机器上,使用 pip 下载所有需要的第三方库,并使用 wheel 工具将这些库打包成 wheel 格式的文件。然后将这些 wheel 文件拷贝到离线环境中,使用 pip 安装 wheel 文件即可。具体步骤如下: 在有网络连接的机器上,使用 pip 下载需要的第三方库: ``` pip download <package_name> ``` 这个命令会下载指定的第三方库及其依赖的库到当前目录下。 使用 wheel 工具将这些库打包成 wheel 格式的文件: ``` pip wheel --wheel-dir=<path_to_wheels> <package_name> ``` 这个命令会将指定的第三方库及其依赖的库打包成 wheel 格式的文件,并保存在指定的目录下。 将 wheel 文件拷贝到离线环境中,使用 pip 安装 wheel 文件: ``` pip install --no-index --find-links=<path_to_wheels> <package_name> ``` 这个命令会从指定的目录下查找 wheel 文件,并安装指定的第三方库及其依赖的库。 2. 手动安装 在有网络连接的机器上,下载需要的第三方库的源代码,并将其拷贝到离线环境中。在离线环境中,使用 setup.py 安装第三方库。具体步骤如下: 在有网络连接的机器上,下载需要的第三方库的源代码: ``` pip download --no-binary=:all: <package_name> ``` 这个命令会下载指定的第三方库的源代码到当前目录下。 将源代码拷贝到离线环境中,使用 setup.py 安装第三方库: ``` python setup.py install ``` 这个命令会在离线环境中安装指定的第三方库及其依赖的库。 注意:手动安装需要确保离线环境中已经安装了相应版本Python 解释器,并且所有依赖的库也已经安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值