如何使用python子流程模块激活virtualenv?

2024-06-08 15:46:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python的子进程模块调用shell脚本。 shell脚本使用virtualenvwrapper激活virtualenv,然后调用python脚本。 最后一个调用的python脚本需要在virtualenv中安装库,它正在崩溃。你知道吗

tried activating virtualenv again in python script but of no use

父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

你知道吗分析包装器.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,但正在崩溃


Tags: py脚本truehomenewbinservervirtualenv
1条回答
网友
1楼 · 发布于 2024-06-08 15:46:33

我认为您的问题是Popen生成了一个子shell,因此您在一个子进程中激活virtualenv并尝试在另一个子进程中使用它是行不通的。你知道吗

如果两者之间没有发生任何事情,您可以尝试将命令链接到同一个进程中:

command = "/home/arman/analysis_server/new_analysis/run && python /home/arman/analysis_server/new_analysis/DataHandlerWrapper.py " + instrument + " &"

相关问题 更多 >