小编典典

Windows上的Python 2.7,“对于所有多处理示例,都声明main_name不在sys.modules中,main_name”

python

有以下简单代码:

from multiprocessing import Process, freeze_support

def foo():
    print 'hello'

if __name__ == '__main__':
    freeze_support()
    p = Process(target=foo)
    p.start()

它在Linux或带Python 3.3的Windows上运行良好,但在带Python 2.7的Windows上运行失败。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\Python27\lib\multiprocessing\forking.py", line 346, in main
    prepare(preparation_data)
  File "c:\Python27\lib\multiprocessing\forking.py", line 454, in prepare
    assert main_name not in sys.modules, main_name
AssertionError: thread

一般来说,我尝试过的所有多处理示例在该设置上均失败。为什么?


阅读 144

收藏
2020-12-20

共1个答案

小编典典

这是一个已知的错误:

http://bugs.python.org/issue10845

不知道这是否会移植到2.7.X。

2020-12-20