[英]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.