python创建虚拟环境并运行

151 阅读1分钟

先生成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

  1. 先进入到main.py所在目录:
cd /home/ubuntu/projects/my_project
  1. 创建虚拟环境(目录名建议用 venv,方便识别),首次创建了之后,后续再运行就不用再创建。
python3 -m venv venv
  1. 激活虚拟环境(激活后命令行前缀会显示 (venv),表示当前在隔离环境中)
source venv/bin/activate
  1. 安装项目依赖(从 requirements.txt 导入),也基本只是首次需要安装,后续再运行就不用再执行
pip install -r requirements.txt
  1. 接下来就可以运行main.py了
python main.py

python3 main.py
  1. 若需暂时离开项目环境,执行:
deactivate
  1. 后台运行项目(不阻塞终端),若需项目在后台持续运行(如服务型程序),可使用 nohup 或 systemd,以 nohup 为例:
# 在虚拟环境中,用 nohup 后台运行,输出日志到 app.log
nohup python main.py > app.log 2>&1 &
  • 日志会写入 app.log,方便排查问题;
  • 即使关闭终端,程序仍会在虚拟环境中运行,不影响其他程序。