簡體   English   中英

Python 子進程未啟動但也沒有錯誤

[英]Python Subprocess not starting but no errors either

我想要一個腳本來創建 2 個同時運行的 while 循環。 為了實現這一點,我正在嘗試打開另一個腳本(同時運行多個腳本,而不是將所有代碼都放在一個腳本中)。 主要腳本:

#!/bin/env python
import sys
import subprocess
print sys.path
process = subprocess.Popen('/home/pi/test2.py', shell=True, stdout=subprocess.PIPE)

第二個腳本:

#!/bin/env python
import sys
i=1
print sys.path
while i<50:
    print i
    i=i+1

主腳本沒有錯誤地終止,但看起來第二個腳本甚至沒有啟動。 為什么?

如果您想查看test2.py的輸出,則不應指定stdout=subprocess.PIPE test2.py 收集標准輸出並允許您通過process對象訪問它。

此外,就其價值而言, shell=True不是一個好主意,除非您確定需要它。

然后它看起來像這樣

subprocess.Popen(['/home/pi/test2.py'])

添加到 sigmavirus24s 答案。 當您不設置shell=True您必須將參數作為這樣的列表傳遞['/home/pi/test2.py']並將其作為第一個參數傳遞。 對於許多參數,請使用shlex modules split函數將string拆分為參數列表。

編輯:要使腳本正常工作,您需要將['python', '/home/pi/test2.py']作為參數傳遞。 這告訴python運行腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM