【发布时间】:2020-06-01 10:25:41
【问题描述】:
我必须从一个瓶子脚本(如 Django 之类的网络框架)中调用一个长期运行的过程。
所以我有一个瓶子脚本
os.system("python /home/tom/Documents/proc_test/main.py")
反正 main.py 脚本没有被执行。 如何从另一个正在运行的 python 程序调用 python 脚本?
P.S: 在 python shell 解释器中我写了 os.system("python /home/tom/Documents/proc_test/main.py") 并且文件被调用
【问题讨论】:
-
这是蟒蛇。导入并调用函数。
-
你试过
exec吗?exec(open("/home/tom/Documents/proc_test/main.py").read())它只有在文件是可执行的情况下才有效。不相关,但我更喜欢使用subprocess模块来执行二进制文件。 -
@Frodon 你能避免建议更糟糕的解决方案吗?
-
"main.py 脚本未执行" => 那么您可能想找出原因。 “我如何从另一个正在运行的 python 程序中调用 python 脚本?” => 就像任何其他可执行文件一样 - 使用
os.system或subprocess。但除非您有令人信服的理由将其作为一个独立的进程运行,否则您可能应该将脚本作为模块导入并调用它的入口点(假设它编写正确,因此可以这样使用)。
标签: python python-3.x