python使用pip离线安装库

一、前言及环境

1. 场景及整体思路

最近在做一个AI智能项目,开发过程中用自己的机子安装了很多库,开发完之后需要部署到公司内网的环境中,但是客户那边的环境是不能联网的,于是就需要离线进行库的安装。

上网搜了一下,大概思路是:

  1. 从可以联网电脑导出库的名称到文件;
  2. 下载指定库到指定文件夹;
  3. 将库名称文件和安装包拷贝到离线环境进行安装

整体流程如下图所示:

整个流程主要使用到库管理工具pip,我用的是python安装完已经存在的pip,没有pip的可自行安装。

2. 环境

  • macosx 14.1
  • python 3.7.2

注意:后面发现很多问题都是pip版本太低造成的,所以在往下做之前,可以先升级一下pip为最新版本:

python -m pip install -U pip

二、联网下载库

1. 导出库信息

pip freeze > requirements.txt

这个命令是将已经通过pip安装的包的名称记录到requirements.txt文件中。

导出这个文件后,编辑文件,留下你需要的库,其他删除。

2. 下载库安装包

  • 下载到当前目录下的dist目录,你可以选择更换目录
pip download ./dist -r requirements.txt

也可以直接进入目标文件夹然后执行:

pip download -r requirements.txt

requirements.txt中列出来的库下载到packages文件夹。

这里要注意,因为我的pip版本比较新,所以用的download,据说老一点的版本应该是install --download:

pip install --download ./packages -r requirements.txt

注意:如果requirements.txt里面存在不能通过pip安装的库,下载过程会报错。

三、离线安装库

1. 进行安装

requirements.txtpackages文件夹拷贝到需要离线安装的服务器,
通过以下命令进行安装:

pip install --no-index --find-links=./dist -r requirements.txt

根据pip版本不同,里面的参数有可能是--find-link

2. 安装问题

  1. 使用MacOsx系统下载的离线安装包,在CentOS7上无法正常安装,观察下包名,发现依赖包应该是单独给Macosx定制的。

    建议大家需要在指定操作系统部署,先在同样的操作系统下进行download依赖包,这样可以避免这个问题。
posted @ 2019-08-03 11:18  Osheep-昔日暖阳  阅读(774)  评论(0编辑  收藏  举报