如何在 python 脚本中激活 venv

时间:2021-01-22 08:51:46

标签: python linux

我有一个由操作系统每 5 分钟执行一次的 python 脚本。

问题是它需要先激活我在 jdate 中为它创建的 /tmp 虚拟,才能使用安装在那里的 jdatetime 模块。

我尝试了 #1 和 #2,但都没有成功。在终端中执行脚本给我错误。

#!/usr/bin/env python

# 1:
import os
os.system(f"cd /tmp ; source jdate/bin/activate")
# returns error: ModuleNotFoundError: No module named 'jdatetime'

# 2:
import subprocess
subprocess.check_output(f"cd /tmp ; source jdate/bin/activate", shell=True)
# returns error: ModuleNotFoundError: No module named 'jdatetime'

1 个答案:

答案 0 :(得分:0)

AFAIK,venv 激活所做的只是将 venv/bin 文件夹路径添加到 PATH 环境变量中。如果你使用 CRON 来调度执行,你试过这个吗?:

*/5 * * * * (cd /tmp/jdate/bin && python path/to/project/myapp.py)
相关问题