使用virtualenv发布Python程序

客户环境不能上网,开始想把所有依赖包下载下来,进入客户环境进行安装。但为了避免出差,部署工作交给其他同事了,我想还是需要更简单的方式。

实验了一下virtualenv是可以的

1. 创建一个新的环境(改为virtualenv --no-site-packages ENV,不复制全局的包进来)

 

 

新环境在目录ENV中

 

2. 进入到新环境

 

3. 安装程序及其依赖包

把我们的程序考到pub3目录下

并执行pip install -r requirements.txt安装所有的依赖包

 

4. 让ENV这个目录可以改变位置

Make an EXISTING virtualenv environment relocatable.

This fixes up scripts and makes all .pth files,
relative  (改成相对路径)

 这一步是必要的,如果不做,必须保证新的环境上ENV所在的路径与打包机完全一致。因为,像pip这样的工具内会有绝对路径,如python解析器地址。

如果执行了relocatable就可以至于任意目录了

 

5. 修改ENV/bin/activate中存在的绝对路径 

 

 改为

 

 

6. 压缩pub3目录发布

 

-----------------------------------------------

在客户环境部署

 

7.  解压并进入pub3

 

8. 进入python虚拟环境

cd xxx/xxx/ENV

source  bin/activate

若第5步改成了pwd的话,一定要进入ENV目录后,执行source  bin/active。否则无法正确进入虚拟环境

执行完后,测试一下虚拟环境,看是否引用的是虚拟环境中的python/pip等

which python

which pip

 

9. 运行程序就可以了

 

posted @ 2019-10-24 09:22  嗯啊哉  阅读(437)  评论(0)    收藏  举报