树莓派python代码从thony IDE运行,但不能从终端运行



我试图从一个python代码运行三个python代码。但是,代码不能从终端运行。然而,当我尝试使用thony IDE运行它时,所有代码都运行得很好。下面是我要执行的代码:

#!/usr/bin/python3
import time
import threading
import os

def startProgram(i):
if i==0 or i=='0':
time.sleep(1)
os.system("sudo python3 /home/pi/a.py")
print("Create tunnel code executed")
elif i==1 or i=='1':
time.sleep(1)
os.system("sudo python3 /home/pi/b.py")
print("Create capture http code executed")
elif i==2 or i=='2':
time.sleep(1)
os.system("sudo python3 /home/pi/c.py")
print("Create mail transaction details code executed")
else:
print("Value not in range")
pass
def main():
for i in range(3):
print(i)
t = threading.Thread(target = startProgram, daemon=True, args=(i,))
t.start()
if __name__=="__main__":
main()

终端没有抛出错误。代码只是运行并退出,但其他3个程序永远不会执行。我试图在终端中使用以下命令执行python代码:

python3 startProgram.py

另外,我已经单独测试了所有的代码,它们运行没有任何错误。请让我知道我在哪里做错了,如何解决这个问题。提前谢谢。

既然其他脚本都是.py的,为什么不直接导入它们呢?

假设startProgram.py与其他文件在同一文件夹中——

from time import sleep
from threading import Thread
import a, b, c

def startProgram(i):
try:
sleep(1)
[a.main(), b.main(), c.main()][int(i)]
except:
print("Value not in range")
def main():
for i in range(3):
print(i)
Thread(target = startProgram, daemon=True, args=(i,)).start()
if __name__ == "__main__":
main()

相关内容

最新更新