python包的离线安装(linux服务器不能连外网)

有时候服务器因为各种原因是不能连接外网的,我们如果要装python的包需要离线安装,这是一件很令人抓狂的事情。

我的方法有两种:

1.在python包的官网或者镜像上找到符合自己当前操作系统的whl文件,进行下载,然后上传到服务器,依次手动安装。

2.(更为推荐)通过一个可以联网的机器python虚拟环境来安装,这样可以自动解决好相关依赖的问题。

(1) 找一个和服务器操作系统相同的虚拟机

(2) 新建一个python虚拟环境(主要是为了保证之前没有安装过任何其他的包,以免干扰服务器环境)

(3) 新建一个文件夹,不妨命名为package

(4) 以安装grpcio为例,运行

cd package
pip install grpcio
pip download grpcio

(5) 当安装好之后,运行

pip freeze > requirements.txt

就可以自动生成需要的包的列表。此时,package文件夹下面应该有一些whl文件,以及一个requirements.txt文件。

(6) 到文件夹之外,把这个文件夹打包上传到服务器,

命令如下:

cd ..
tar -zcvf package.tar.gz ./package

在这个目录下,运行

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

就可以自动安装所有的python包了。

(7) 之后有包要更新或者新增,可以手动把单个包的whl传上去,也可以如上步骤再来一遍。

(8) 可以用pip list来检查一下自己的包是否成功安装。

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