찾다

 >  Q&A  >  본문

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일 전369

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

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

    Popen은 하위 프로세스를 생성하고 소스 /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
  • 취소회신하다