离线批量安装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会把依赖都会下载回来离线批量安装python第三方包报错处理措施_第1张图片

  3. 细心发现,pandas包的后缀是win环境的,直接放linux肯定不行,这时候我们就可以用上述工具中的腾讯源
    离线批量安装python第三方包报错处理措施_第2张图片
    选中之后下载到本地;

  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版本下载了高于当前版本号的包。

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

你可能感兴趣的:(安装坑,python,pandas,开发语言)