如何在另一个进程中运行Python代码?

12 投票
1 回答
24839 浏览
提问于 2025-04-16 19:36

我想从Python中启动一些其他的Python代码,最好是一个函数,但要在另一个进程中运行。

必须在另一个进程中运行,因为我想进行一些并发测试,比如打开一个已经被父进程独占打开的文件(这应该会失败)。

要求:

  • 支持多种平台:Linux、OSX、Windows
  • 兼容Python 2.6到3.x的版本

相关问题:

1 个回答

23

我建议你认真看看Python的multiprocessing库的文档。从这个库的描述第一句话就可以了解到:

multiprocessing是一个支持使用类似于线程模块的API来创建进程的包。

接下来它提到这个库可以绕过GIL,这正是你想要避免的。你可以看看他们提供的一个简单的示例:

from multiprocessing import Process

def f(name):
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

这个示例展示的是在一个与当前进程不同的进程中调用一个函数。再次强调,这些都是来自文档的内容。

撰写回答