繁体   English   中英

如何在 python 脚本中激活 venv

[英]How can I activate a venv within a python script

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

问题是它需要首先激活我在/tmp中为它创建的jdate virtual 才能使用安装在那里的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'

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM