[ Python ] 应用的部署

一般情况下, 部署应用主要是下面几个步骤:

  1. 代码的准备, 可以直接拷贝, 也可以通过git拉取
  2. 运行环境的准备
  3. 依赖的安装
  4. 运行并监控程序的运行状况

由于python的包管理器没有项目依赖单独管理的功能, 只有全局安装依赖的功能(强烈吐槽这个弱鸡的包管理器, 看看隔壁的npm), 所以为了防止各个项目依赖的包都安装在全局环境下相互冲突, 我们需要为每个项目单独建立一个虚拟环境, 并安装本项目需要的包

运行环境的准备

直接使用venv(Python3)或者virtualenv(Python2)创建虚拟环境并激活虚拟环境
参考: [ Python ] Pipenv & virtualenv

依赖的安装
# 将项目所需的包写入文本文件中, 保存在版本控制中
# 拉取代码的时候一起拉取到部署环境中
pip freeze > requirements.txt

# 根据requirement.txt安装项目代码运行所需的依赖
pip install -r requirements.txt
PM2运行python应用的方法

pm2原本是为node.js设计的负载均衡管理和运行监控程序, 但是pm2可以管理各种程序, 当然也可以应用于python

首先, 建立好你的python环境, 用pipenv或者virtualenv都行, 假设你建立的虚拟python环境位于项目根目录目录下的venv目录中

安装依赖, 执行, source ./venv/bin/activate激活该虚拟环境(在windows下是执行./venv/Scripts/activate.bat)

运行pip, 根据requirements.txt安装依赖: pip install -r requirements.txt

安装依赖成功之后, 运行deactivate退出虚拟环境

这时, 通过pm2来管理我们的应用, 可以直接用pm2的命令, 也可以通过pm2的配置文件

命令方式: pm2 start /path/to/your/script.py --name your_app_name --interpreter /path/to/venv/bin/python

配置文件的方式(以yaml格式的配置文件为例):

# app.yml

name: your-app-name
script: /path/to/your/script.py
interpreter: /path/to/venv/bin/python
cwd: /current/working/directory
# 配置了cwd之后, script和interpreter可以采取相对路径, pm2会自动的切换到cwd目录再执行启动应用的操作

配置文件写好之后, 运行下面的命令来启动我们的应用

pm2 start app.yml

你可能感兴趣的:([ Python ] 应用的部署)