[英]How to activate virtualenv using python subprocess module?
我正在尝试使用python的子进程模块调用shell脚本。 Shell脚本使用virtualenvwrapper激活virtualenv,然后调用python脚本。 最后调用的python脚本需要在virtualenv中安装库,并且崩溃了。
尝试再次在python脚本中激活virtualenv,但没有用
父Python代码-
command = "/home/arman/analysis_server/new_analysis/run"
output = subprocess.Popen([command], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
/运行脚本-
#!/bin/bash
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
workon analytics
python /home/arman/analysis_server/new_analysis/AnalysisWrapper.py
AnalysisWrapper.py-
cmd = "python /home/arman/analysis_server/new_analysis/DataHandlerWrapper.py " + instrument + " &"
subprocess.Popen(cmd, shell=True, executable='/bin/bash', stdout=out, stderr=out)
DataHandlerWrapper.py脚本需要virtualenv,但是它崩溃了
我认为您的问题是Popen产生了一个子外壳,因此您无法在一个子进程中激活virtualenv并尝试在另一个子进程中使用它。
如果两者之间没有任何反应,则可以尝试将命令链接到同一进程中:
command = "/home/arman/analysis_server/new_analysis/run && python /home/arman/analysis_server/new_analysis/DataHandlerWrapper.py " + instrument + " &"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.