先生成requirements.txt文件,先到开发环境的my_project目录下:
pip freeze > requirements.txt
pip freeze 会导出环境中所有安装的包(包括可能未被项目使用的),导致 requirements.txt 冗余。pipreqs 工具会扫描项目代码,只导出实际被 import 的依赖,更精简。
安装 pipreqs:
bash
pip install pipreqs
进入到当前的main.py所在的目录下,比如:src_18_SyncHosts
pipreqs ./ --encoding utf-8 --force
--force 会覆盖已有的 requirements.txt
- 先进入到main.py所在目录:
cd /home/ubuntu/projects/my_project
- 创建虚拟环境(目录名建议用 venv,方便识别),首次创建了之后,后续再运行就不用再创建。
python3 -m venv venv
- 激活虚拟环境(激活后命令行前缀会显示 (venv),表示当前在隔离环境中)
source venv/bin/activate
- 安装项目依赖(从 requirements.txt 导入),也基本只是首次需要安装,后续再运行就不用再执行
pip install -r requirements.txt
- 接下来就可以运行main.py了
python main.py
或
python3 main.py
- 若需暂时离开项目环境,执行:
deactivate
- 后台运行项目(不阻塞终端),若需项目在后台持续运行(如服务型程序),可使用
nohup或systemd,以nohup为例:
# 在虚拟环境中,用 nohup 后台运行,输出日志到 app.log
nohup python main.py > app.log 2>&1 &
- 日志会写入
app.log,方便排查问题; - 即使关闭终端,程序仍会在虚拟环境中运行,不影响其他程序。