[python] python 工程利用虚拟环境在windows、linux、不联网的linux服务器上的迁移 总结
最近需要在一个没有互联网的linux服务器上部署一个python服务。查了一下相关资料,实践可行,总结如下
在一台能够联网的linux机器上,安装python
在python官网,下载指定版本的python
https://www.python.org/downloads/
点击指定版本链接,找到linux适用的版本,主要是要和没有网的linux服务器的linux版本保持一致吧。
复制Python-3.7.0.tar.xz到linux机器上
解压
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
- 点赞
- 收藏
- 关注作者
评论(0)