python项目从开发环境部署到linux服务器

第一次部署项目的时候参考了这个博客,先在这里表示感谢!
注:示例的开发是在mac上,windows可能会稍有不同

整体分为三个部分六个步骤

  • 开发端
    • 代码打包
    • 依赖环境导出
  • 文件传输
    • 文件传输
  • 服务端
    • 建虚拟环境
    • 依赖包安装
    • 解压包和执行

1. 开发端要做的准备有两项

1.1 代码打包

可以打包成tar.gz或者zip格式,这里以zip举例:
把所在开发目录下的data文件夹打包成 data.zip

zip -r data.zip data

更多zip命令看这里

1.2 依赖环境导出

依赖环境导出为 requirements.txt 文件

pip freeze >requirements.txt

pip list --format=freeze > requirements.txt

目标是获得以下格式的文件内容

Bottleneck == 1.3.4
catboost == 0.26.1
certifi == 2022.5.18.1
click == 8.0.4
cycler == 0.11.0
Flask == 2.0.3


我在使用第一个导出语句的时候,文件内容格式出现了问题:

mkl-fft == 1.3.1
mkl-random @ file:///opt/concourse/worker/volumes/live/…
mkl-service == 2.4.0
numexpr @ file:///opt/concourse/worker/volumes/live/31f789a7…

导致在服务端导入文件时报错:

ERROR: Could not install packages due to an EnvironmentError

更多内容可参考讨论,讲得更全面。(感谢这篇文章


文件传输

data.ziprequirements.txt 上传到服务器
我这服务器上有jupyter,直接上传就行


注:文件上传方式多样,请参考其他文章

2. 服务端要做的事情

2.1 建虚拟环境

建议部署在虚拟环境下
代码参考

新建一个虚拟环境

conda create -n your_env_name python=X.X   your_env_name为虚拟环境名称,X.X为python版本号

激活(使用/进入)虚拟环境

source activate your_env_name

2.2 依赖包安装

默认使用conda安装各依赖包,conda无法安装时切换为pip安装

$ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt

更多内容参考

2.3 解压代码和执行

解压zip文件到当前目录

unzip data.zip -d ./

解压之后运行data文件夹下的main.py

python main.py

版权声明:本文为weixin_45425824原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。