如何从另一个python代码运行python代码
我在不同的文件夹中有多个python代码,它们必须按顺序运行。以前也有过类似的问题,但答案似乎并不正确。我尝试了以下命令:如何从另一个python代码运行python代码,python,subprocess,Python,Subprocess,我在不同的文件夹中有多个python代码,它们必须按顺序运行。以前也有过类似的问题,但答案似乎并不正确。我尝试了以下命令: subprocess.check_call(["Python", "D:/demo/full_alg.py"]) subprocess.check_output(["Python", "D:/demo/full_alg.py"]) os.system("D:/demo/full_alg.py") 该full_alg.py文件在执行时必须打印出执行代码的文件列表,并创建相应
subprocess.check_call(["Python", "D:/demo/full_alg.py"])
subprocess.check_output(["Python", "D:/demo/full_alg.py"])
os.system("D:/demo/full_alg.py")
该full_alg.py文件在执行时必须打印出执行代码的文件列表,并创建相应的tiff文件,我想知道为什么您不尝试导入
full_alg.py
包,并基于main中的函数调用来消耗调用结果。但是,如何精确地完成这项工作在很大程度上取决于full_alg.py
的内容
如果您坚持运行运行另一个python脚本的子进程,我建议您查看多处理
模块和示例
代码无法工作的原因可能是
PATH
中缺少Python
解释器。我建议将完整路径传递给您正在使用的解释器和脚本。在运行子进程时应该这样做。检查调用或子进程。检查输出。对于最后一个(os.system
),我认为它无法运行,除非您将python解释器设置为打开*.py
文件的默认应用程序,即使这样,它也取决于要运行的操作系统的非明显配置。您可以使用子流程
库,如下所示:
import subprocess
args = ['{}/manage.py'.format('/home/<you>/<path>'), 'runserver']
subprocess.Popen(args, stdout=subprocess.PIPE)
尝试在“D:/demo…”
前面添加一个/
,如/D:/demo/…
不,这不起作用。.可能重复使用此方法@rao I更新我的答案,希望能帮助您感谢您建议使用该模块,但示例定义了一个函数,然后在主界面中调用该函数。我想知道如何在外部调用python脚本并执行它?
import subprocess
python_version = '3'
path_to_run = './'
py_name = '__main__.py'
# args = [f"python{python_version}", f"{path_to_run}{py_name}"] # Available in python3
args = ["python{}".format(python_version), "{}{}".format(path_to_run, py_name)]
res = subprocess.Popen(args, stdout=subprocess.PIPE)
output, error_ = res.communicate()
if not error_:
print(output)
else:
print(error_)