首页 > 解决方案 > 如何从 python 进程调用 python 脚本

问题描述

我必须从一个瓶子脚本(如 Django 的网络框架)中调用一个长期运行的过程。

所以在一个瓶子脚本中我有

os.system("python /home/tom/Documents/proc_test/main.py")

无论如何, main.py 脚本没有被执行。如何从另一个正在运行的 python 程序调用 python 脚本?

PS:在python shell解释器中我写了 os.system("python /home/tom/Documents/proc_test/main.py") 并且文件被调用

标签: pythonpython-3.x

解决方案


您可以使用importlib通过完整路径直接导入 python 脚本。
让我们假设这个例子 main.py:

def func():
    print("func called")

在您的主脚本中,您导入如下:

import importlib as imp
spec = imp.util.spec_from_file_location('d', '/home/tom/Documents/proc_test/main.py')
foo = imp.util.module_from_spec(spec)
spec.loader.exec_module(foo)

foo.func()

输出:

func called

推荐阅读