我想要在 python 里开启virtualenv,然后运行一些命令,该怎么做呢?
import subprocess
p = subprocess.Popen(['source /Users/XX/Desktop/mio/worker/venv/bin/activate'],shell=True)
print p.stderr
import pika
输出如下:
None
Traceback (most recent call last):
File "/Users/Ru/Desktop/mio/worker/run.py", line 6, in <module>
import pika
ImportError: No module named pika
另外,我想在python内打开一个终端运行a.py,另外再打开另一个终端运行b.py。该怎么做呢?
看了subprocess和EasyProcess模块,都没有得到答案,可能我看得不够深。小白一个,希望得到解答,谢谢。
天蓬老师2017-04-18 09:09:11
Popen會建立子進程,source /Users/XX/Desktop/mio/worker/venv/bin/activate會增加一些環境變量,這些環境變數只在子進程內有效,不會影響父進程。
通常都是在shell中執行以下指令,然後再用python執行:
#> source /Users/XX/Desktop/mio/worker/venv/bin/activate
#> python a.py
PHP中文网2017-04-18 09:09:11
有關如何在 script 中運行其它 python script:
python2 可以使用 execfile
python3 可以使用 exec
execfile
的範例:
# a.py
def test(x):
return x
print(test(a))
透過 exe.py
來運作:
# exe.py
execfile('a.py', {'a':5})
我回答過的問題: Python-QA