検索

ホームページ  >  に質問  >  本文

shell - python 内运行子进程的问题,求解答

我想要在 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模块,都没有得到答案,可能我看得不够深。小白一个,希望得到解答,谢谢。

PHPzPHPz2892日前370

全員に返信(2)返信します

  • 天蓬老师

    天蓬老师2017-04-18 09:09:11

    Popen は子プロセスを作成し、source /Users/XX/Desktop/mio/worker/venv/bin/activate はいくつかの環境変数を追加します。これらの環境変数は子プロセス内でのみ有効であり、親プロセスには影響しません。プロセス。
    通常はシェルで次のコマンドを実行し、Python で実行します。

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:09:11

    スクリプト内で他の Python スクリプトを実行する方法について:

    • python2 は execfile を使用できます

    • python3 は exec を使用できます

    execfileの例:

    リーリー

    exe.py 経由で実行:

    リーリー

    私が回答した質問: Python-QA

    返事
    0
  • キャンセル返事