前言
一开始我是用宝塔面板的,但是不知道为什么一直无法启动,想着予以研究怎么在宝塔面板上运行起来,不如自己亲自去服务器里面研究怎么通过命令跑起来;
环境
服务器镜像版本:Ubuntu
步骤
Python 运行不同于 Node,它不能直接安装依赖,而是得先需要一个独立的虚拟环境并激活它,Ubuntu 新版(具体多少不知道,好像是 20 版本以后)默认不再允许直接在系统环境中运行 Python,创建以后才能安装依赖和运行程序。
在当前目录下创建一个 Python 虚拟环境,目录是 .venv
pyhton3 -m venv .venv
激活它
source .venv/bin/activate
Python 虚拟环境一般情况只需要创建一次,只要发现项目中执行以下命令,如果发现有这个目录后续就不再需要创建虚拟环境了,直接激活即可。 因为 Python 虚拟环境的目录是 .venv,在 Linux 镜像中默认是隐藏的,所以 ls 是无法查看到的,得用以下命令才能看得到是否有有 .venv 目录。
ls -la
如果你想退出的话,也很简单
deactivate
运行
其实建议部署前,先自己直接用 Python 运行一下,确保程序是能正常运行的,不然 pm2 部署不成功它是会不断重试的,会把 cpu 给打高。 这样就可以提前排查一下问题,尤其是现在盛行 AI 编程,比如它可能一时没理解,弄成了命令行使用 uvicorn/gunicorn 启动服务,而你又是通过 pyhton3 xxx 的方式来启动,会有启动一闪而过就退出的现象。
部署
才知道原来 PM2 不仅可以部署 Node 项目,原来也可以部署 Python 项目,从上文我们知道,Python 的运行是需要虚拟环境的,所以我们启动命令我们需要把虚拟环境的创建和激活命令也写上。
pm2 start "source .venv/bin/activate && python3 -m app" --name "xxxxx"
顺便再补充一下其他命令,方便看到的同学直接使用,不再需要去找其他文章。
停止项目
pm2 stop [pm2面板中,项目的id或者项目的name]
重启项目
pm2 restart [pm2面板中,项目的id或者项目的name]
删除项目
pm2 delete [pm2面板中,项目的id或者项目的name]
发表回复