python移植第三方库

想必大家在运维过程中,都涉及到需要部署python第三方库的场景,而在生产环境中没有外网,也就无法通过pip下载python库,需要通过离线安装的方式进行安装,而离线安装python库涉及到非常多版本的包,手动选择版本不对的话也会安装不上,并且第三方库也涉及到多个前置依赖库,一个个安装起来非常麻烦。所以我们可以在外网环境模拟一台机器,通过在线的方式下载部署第三方库,然后移植到生产环境中。

说明:外网主机和内网主机要保证主机架构一致、python环境版本一致。

1.移植全量python库(适用于新的python环境)

获取外网主机中所有的库清单,并下载所有库到本地

 pip freeze > pythonpackage.txt

下载所有库到本地

pip download -d ./package -r pythonpackage.txt -i https://mirrors.aliyun.com/pypi/simple/

将该文件夹上传到离线主机中,并将pythonpackage.txt也上传到package文件夹中

离线安装第三方库

pip install --no-index --find-links=安装包路径 -r pythonpackage.txt

2.移植指定python库

在外网主机中下载pipdeptree,用于查看第三方库的依赖关系

pip install pipdeptree -i https://mirrors.aliyun.com/pypi/simple/

下载所需要的第三方库,以pandas为例

pip install pandas -i https://mirrors.aliyun.com/pypi/simple/

下载完成后查看pandas的库依赖关系

pipdeptree |grep -C5 pandas

可以看到pandas依赖numpy、python-dateutil、pytz三个库,而python-dateutil又依赖six库。此处如果使用pip show pandas来查看依赖关系,就没法看到多级依赖。

获取包版本信息

pip freeze|grep "pandas\|numpy\|python-dateutil\|pytz\|six" > pythonpackage.txt

下载所有库到本地

pip download -d ./package -r pythonpackage.txt -i https://mirrors.aliyun.com/pypi/simple/

将该文件夹上传到离线主机中,并将pythonpackage.txt也上传到package文件夹中

离线安装第三方库

pip install --no-index --find-links=安装包路径 -r pythonpackage.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值