簡體   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