我有几个需要从主脚本运行的Python脚本.每个脚本都是作为独立代码编写的.我不想使用IMPORT语句将脚本带入主脚本,因为我担心变量、类等之间可能会发生冲突.

我研究了如何调用脚本,并try 了exec(open("Motor.py").read()),但这不会暂停调用脚本,但会运行被调用的(Motor.py)脚本.

我还try 了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')

很明显,我做错了什么,但我想不出来.目前正在用python3进行编码.

推荐答案

try 使用子进程模块和POpen,这将打开一个您可以等待的进程.

import subprocess

cmd = [sys.executable, 'Motor.py']
subprocess.Popen(cmd).wait()

Python相关问答推荐

每个组每第n行就有Pandas

从单个列创建多个列并按pandas分组

收件箱转换错误- polars.exceptions. ComputeHelp- pandera(0.19.0b3)带有polars

NumPy中的右矩阵划分,还有比NP.linalg.inv()更好的方法吗?

跟踪我已从数组中 Select 的样本的最有效方法

比较两个二元组列表,NP.isin

删除最后一个pip安装的包

带条件计算最小值

Pandas 都是(),但有一个门槛

无法通过python-jira访问jira工作日志(log)中的 comments

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

如何在给定的条件下使numpy数组的计算速度最快?

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

Django RawSQL注释字段

如何指定列数据类型

python中csv. Dictreader. fieldname的类型是什么?'

为什么常规操作不以其就地对应操作为基础?