recherche

Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours371

répondre à tous(2)je répondrai

  • 天蓬老师

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

    Popen créera un processus enfant et source /Users/XX/Desktop/mio/worker/venv/bin/activate ajoutera des variables d'environnement. Ces variables d'environnement ne sont valides que dans le processus enfant et n'affecteront pas le parent. processus.
    Exécutez généralement la commande suivante dans le shell, puis exécutez-la avec python :

    #> source /Users/XX/Desktop/mio/worker/venv/bin/activate
    #> python a.py

    répondre
    0
  • PHP中文网

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

    À propos de la façon d'exécuter d'autres scripts Python dans le script :

    • python2 peut utiliser le fichier exécutable

    • python3 peut utiliser exec

    Exemple de

    execfile :

    # a.py
    def test(x):
        return x
    
    print(test(a))

    Exécuter via exe.py :

    # exe.py
    execfile('a.py', {'a':5})

    Questions auxquelles j'ai répondu : Python-QA

    répondre
    0
  • Annulerrépondre