Raspberry Pi python代码从Thonny IDE运行,但不从终端运行

2024-04-25 15:12:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个python代码运行三个python代码。但是,代码不会从终端运行。然而,当我尝试使用ThonnyIDE运行它时,所有代码都能完美运行。下面是我正在尝试执行的代码:

#!/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

此外,我已经单独测试了所有代码,它们运行时没有任何错误。请让我知道我哪里出了问题,以及如何解决问题。提前谢谢


Tags: or代码pyimport终端hometimeos
1条回答
网友
1楼 · 发布于 2024-04-25 15:12:35

既然其他脚本都是.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()

相关问题 更多 >