离线批量安装python第三方包报错处理措施

——此文章为作者结合网络信息进行二次编辑——

应用场景:

很多时候,生产环境或其他特殊环境的服务器无法联网,最终导致无法直接使用pip install进行下载第三包。且需要把本地环境的包批量迁移到上述的服务器。

环境、工具准备

  1. python环境
  2. pip工具
  3. 腾讯源:http://mirrors.cloud.tencent.com/pypi/simple/

注:强烈推荐腾讯源,当使用离线下载的时候极有可能需要亲自到源上找包,腾讯源的好处是所有的包按照名称排序,可以通过ctrl + F快速找包。其他源可自行感受,不再展开描述。

操作流程

  1. 生成安装目录
    pip freeze > requirements.txt
    将当前环境的包以列表形式导入到 requirements.txt;

  2. 生成安装包文件夹
    pip download -d 文件夹名 -r requirements.txt
    根据目录文件下载包到文件夹;

  3. 将文件夹以及requirements.txt文件复制到离线的服务器,路径看个人喜好

  4. 执行批量安装
    pip install --no-index --find-links=文件夹名/ -r requirements.txt

正常来说已经执行完毕,但很多情况下本地python版本不一定和线上的一致,最终导致个别包会安装失败,报错!

以下为报错处理的流程(本人亲身经历并总结):
1、vi requirements.txt 将报错的包先注释,直至安装完成;
2、对注释的包进行单独处理
(因为作者工作环境只能用win 不能安装Vm,因此我导出来的包直接放linux环境肯定一堆报错!!!)
如安装pandas为例:

  1. 下载单个离线包: pip download -d 文件夹名 pandas==1.0.0

  2. 可以看到pip会把依赖都会下载回来

  3. 细心发现,pandas包的后缀是win环境的,直接放linux肯定不行,这时候我们就可以用上述工具中的腾讯源
    在这里插入图片描述
    选中之后下载到本地;

  4. 将下载的包

     pandas-1.0.0-cp38-cp38-manylinux1_x86_64.whl
    

    改成

     pandas-1.0.0--py2.py3-none-any.whl
    

    并替换步骤2中的pandas文件(不改名称很有可能安装不成功)

  5. 将步骤2文件夹放入离线服务器并执行代码
    pip install --no-index --find-links=文件夹名 pandas==1.0.0

  6. 执行完毕,如果仍然失败可留意报错信息,要么是依赖包之间版本不对称,要么是python版本下载了高于当前版本号的包。

结语:网上很多版本都是一笔带过,可能大家都没遇到这种问题,这篇文章主要对报错处理进行补充说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值