离线环境python项目的部署
文章目录
最近自己参与的一个项目接近尾声,需要把代码部署到甲方提供的服务器。本来想着没有什么困难,谁知道甲方提供的服务器需要连接到vpn堡垒机之后才能连接,并且服务器是不能与外网直接连接的。知道真相的我眼泪掉下来。
平常的开发中,用惯了pip install xxxx
或者是pip install -r requirements.txt
,没怎么考虑过如何在与外网隔离并且是一个裸机的服务器上部署python项目(当然,如果项目依赖比较少,可以直接下载源码安装,如果依赖比较多就会比较麻烦)。
经过一番搜索发现了一款神器:pip2pi,它能够把当前项目的依赖项放置在一个目录中,然后把这些依赖放到服务器上再使用pip
安装。
具体用法
在使用pip2pi
打包项目依赖之前,需要找一个和服务器环境相同的虚拟机:比如说服务器操作系统是centos6.5、python版本是2.7,那就需要自己弄个虚拟机把环境搞一致再下载依赖项。
详细步骤如下:
- 为了避免多余依赖的引入,最好是用
virtualenv
创建一个隔离环境:virtualenv packages
- 获取当前项目的所有依赖,进入隔离环境,将项目的依赖项完整下载:
|
|
- 将下载好的依赖项放在服务器,执行命令安装依赖,第一遍安装可能跳过某些依赖项,可以多次执行这个命令:
|
|
文章作者 rgozi
上次更新 2017-10-24