如何在 Shell 脚本中指定虚拟环境运行 Python 程序
学习笔记作者:admin日期:2025-06-09点击:27
摘要:总结了如何通过 Shell 脚本指定虚拟环境运行 Python 脚本,包括直接调用虚拟环境 Python、激活虚拟环境以及在 Python 脚本中添加 shebang 的方法。
如何在 Shell 脚本中指定虚拟环境运行 Python 程序
1. 背景
在 Python 开发中,使用虚拟环境(venv
)可以隔离项目的依赖。当你需要通过 Shell
脚本来运行 Python 程序时,也需要确保它使用指定的虚拟环境。
2. 方法详解
方法一:直接调用虚拟环境中的 Python
这是最推荐的方式,适合自动化脚本、定时任务或部署场景。
#!/bin/bash
# 设置项目路径(建议绝对路径)
PROJECT_DIR="/home/youruser/project-folder"
VENV="$PROJECT_DIR/myvenv"
SCRIPT="$PROJECT_DIR/app.py"
# 使用虚拟环境中的 python 执行脚本
$VENV/bin/python $SCRIPT
方法二:激活虚拟环境后再运行
如果需要在脚本中执行多个依赖虚拟环境的命令,可以激活它。
#!/bin/bash
PROJECT_DIR="/home/youruser/project-folder"
VENV="$PROJECT_DIR/myvenv"
SCRIPT="$PROJECT_DIR/app.py"
# 激活虚拟环境
source $VENV/bin/activate
# 运行程序(此时使用的是虚拟环境的 python)
python $SCRIPT
方法三:在 Python 脚本中添加 shebang
你可以在 Python 脚本中添加 shebang 行,直接指定虚拟环境的 Python。
#!/path/to/your/myvenv/bin/python
print("Hello from virtualenv")
3. 小贴士
- 使用绝对路径确保脚本能找到虚拟环境。
- 在服务器上部署时推荐直接调用虚拟环境中的 Python。
- 在脚本中加入日志输出,方便调试。
4. 总结
方法 | 命令示例 | 推荐程度 | 适用场景 |
---|---|---|---|
直接调用虚拟环境中的 Python | $VENV/bin/python app.py |
✅ 强烈推荐 | 自动化、cron、部署 |
激活虚拟环境再运行 | source venv/bin/activate && python app.py |
✅ 推荐 | 多条命令或调试 |
在 Python 脚本中加 shebang | #!/path/to/venv/bin/python |
✅ 可选 | 快速执行脚本 |