如何在 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 ✅ 可选 快速执行脚本

上一篇      下一篇