打包某个Python包所有依赖,进行离线安装--以pyecharts为例

工作中经常会碰到在服务器上安装Python包的情景,但公司服务器一般不能连接互联网,这就需要在个人电脑上先将该Python包所有依赖下载下来,再拷贝至服务器进行安装。好在pip命令能帮我们自动完成这一操作,之前年轻不懂事,都是傻傻地一个一个下载,看得多学得多了,本事也见长,效率也更高。下面以离线打包pyecharts所有依赖包,并在服务器上安装,进行演示:

一、写在前面

注意:个人电脑上的Python版本,务必和服务器上的Python版本一致,且操作系统和硬件平台也要一致,比我这里都是Python3.6.12,linux内核操作系统(centos),x86_64架构;我的个人笔记本装的是win10,所以我用VM VirtualBox虚拟了一个Ubuntu操作系统,同属linux内核系统,x86_64架构;如果不能保持一致,就很难办了,因为pip命令下载的包版本,是根据自动判断的系统平台架构来的。不同架构间不能通用。

二、离线安装单个包及其所有依赖

以,pyecharts为例

1.在个人笔记本上,将所有依赖包下载到指定目录:

pip download pyecharts -d ./pyecharts_packages

下载完成后,pyecharts_packages目录如下:

打包某个Python包所有依赖,进行离线安装--以pyecharts为例_第1张图片

可以看到,自动下载了所有依赖,包括pyecharts包自身。
2.拷贝到服务器后,安装:

pip install --no-index --find-links=./pyecharts_packages pyecharts

打包某个Python包所有依赖,进行离线安装--以pyecharts为例_第2张图片

 可以看到,安装成功了。

三、离线安装整个Python环境及其所有依赖

为了方便打包这个环境,并到服务器离线复现环境,同时将方法附上,过程类似。

1.执行

pip freeze > requirements.txt

把当前环境安装的模块包输入文件内,注意这个是当前环境所有的,所以最好的方式是每个项目单独虚拟Python环境,这样导出的是纯净的依赖
2.再执行

 pip download -r requirements.txt -d ./pip_packages

将依赖包全部下载下到 pip_packages 目录下
3.最后将这些包拷贝到服务器上,执行

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

安装全部依赖,复现Python环境,当然,前提是你要先安装好对应版本的Python。

至此,完成所有操作。

你可能感兴趣的:(Clickhouse,python,开发语言,后端)