[python] python 工程利用虚拟环境在windows、linux、不联网的linux服务器上的迁移 总结

举报
lessIsBetter 发表于 2020/05/30 19:49:01 2020/05/30
【摘要】 在一台没有网的服务器上,干啥都很麻烦,python工程利用虚拟环境在windows、linux、不联网的linux服务器上的迁移,总结了一下。欢迎大佬们拍砖。

最近需要在一个没有互联网的linux服务器上部署一个python服务。查了一下相关资料,实践可行,总结如下


在一台能够联网的linux机器上,安装python

 

在python官网,下载指定版本的python

https://www.python.org/downloads/

点击指定版本链接,找到linux适用的版本,主要是要和没有网的linux服务器的linux版本保持一致吧。


复制Python-3.7.0.tar.xzlinux机器上

 

解压

xz -d Python-3.7.0.tar.xz

tar xvf Python-3.7.0.tar

 

进入 Python-3.7.0 目录

运行./configure

运行make

运行make test

运行sudo make install

 

windows机器上生成原有虚拟环境项目的依赖包列表文件

 

pycharm 如果没有在虚拟环境下,运行项目会自动启动虚拟环境

 

在项目目录虚拟环境下

pip3 freeze > requirements.txt

 

将整个项目和requirements.txt文件一起拷贝到linux机器上

 

在能够联网的linux机器上运行生成虚拟环境

 

找到安装的python3.7.0

$ whereis python

$ whereis python3.7.0

 

生成虚拟环境

virtualenv -p /usr/local/bin/python3.7 venv2

venv2为新的虚拟环境目录

进入虚拟环境

source venv2/bin/activate

在虚拟环境中安装包

pip3 install -r requirement.txt

为了移植的方便,此处下载了所有需要的包,这里顺便下载virtualenv创建工具virtualenv。

pip3 download -r requirement.txt

pip3 download virtualenv

之后将产生一些.whl的文件

 

在不能联网的机器上移植虚拟环境

将上述项目,以及requirement.txt和.whl文件copy到不能互联网的机器上。

*************************************************************

比如连接到一台docker镜像上

Terminal1:

docker run --entrypoint=bash -it ca88

Terminal2:

docker ps找到对应的编号

复制文件

docker cp file_name.tar f85f:/home/service

*************************************************************

在此机器上,

通过whereis python3

找到python3目录

生成虚拟环境

virtualenv -p /usr/local/bin/python3.7 venv3

进入虚拟环境

source venv3/bin/activate

安装包

pip3 install -r requirement.txt

退出虚拟环境

Deactivate

 

运行过程配置环境变量,在项目目录运行

export PYTHONPATH=`pwd`

 

启动脚本可以写为

#!/bin/bash

work_path=$(dirname $0)

cd $work_path

export PYTHONPATH=$work_path

"venv3/bin/python3.7" src/data_preprocess/b03_http_server.py


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。