我想要在 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模块,都没有得到答案,可能我看得不够深。小白一个,希望得到解答,谢谢。
|  |      1panda0 OP 第一个问题我有了新的想法:因为 subprocess 是打开一个进程然后运行命令,然后关闭。所以子进程激活的虚拟环境不会对父进程有任何影响。 | 
|      2yangtukun1412      2016-07-20 15:35:52 +08:00 virtualenv 提供了 activate_this.py, 可以在运行时切换到虚拟环境, 一般放在虚拟环境的 bin 目录下. | 
|  |      3jixiangqd      2016-07-20 15:42:41 +08:00  1 本来 python 的部署就是个难题,你还要这么搞。。。让程序依赖环境变得更加严重了。。。。 如果你非要这么搞,为啥不用 shell 脚本呢? | 
|  |      40x5010      2016-07-20 16:18:28 +08:00 进程交换. os.execv |