我有几个需要从主脚本运行的 python 脚本。每个脚本都是作为独立代码编写的。我不想使用 import 语句将脚本引入主脚本,因为我担心变量、类等之间可能会发生冲突。
我研究了如何调用脚本并尝试了
exec(open("Motor.py").read())
,但这不会暂停调用脚本,而是运行被调用的(Motor.py)脚本。
我还尝试过
result = subprocess.run(["python", "Motor.py"], capture_output=True, text=True)
,它会用 exec 命令执行调用的脚本或单独运行脚本时不存在的语法错误轰炸被调用的脚本。以下是返回“错误”的示例。
CompletedProcess(args=['python', 'Motor.py'], returncode=1, stdout='', stderr=' File "Motor.py", line 68\n self.geometry(f"{750}x{385}")\n ^\nSyntaxError: invalid syntax\n')
显然我没有做正确的事情,但我无法弄清楚。目前使用 python 3 进行编码。
尝试使用 subprocess 模块和 Popen,这将打开一个您可以等待的进程。
import subprocess
cmd = ['python', 'Motor.py']
subprocess.Popen(cmd).wait()