gpt4 book ai didi

python - 无法从 'function_inner' > 获取 <模块 '__mp_main__' 上的属性 'E:\\python\\Test\\test.py'

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:07 25 4
gpt4 key购买 nike

我正在尝试在 Windows 10 中运行 python 脚本,该脚本已在 macOS 中成功运行。然后它抛出异常。运行以下测试程序后:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import multiprocessing


def function_def(*args, **kwargs):
print('run success')


if __name__ == '__main__':
def function_inner(*args, **kwargs):
print('run success')
process = multiprocessing.Process(target=function_inner)
process.start()
process.join()

它抛出以下异常:

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\xxx\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'function_inner' on <module '__mp_main__' from 'E:\\python\\Test\\test.py'>

但是,如果使用

process = multiprocessing.Process(target=function_def)

不适合

process = multiprocessing.Process(target=function_inner)

然后运行成功

我使用的是 python 3.6.1、windows 10 x64,那么我该怎么办?

最佳答案

multiprocessing库复制您的主模块时,它不会将其作为__main__脚本运行,因此不会运行if __name__ =='中定义的任何内容__main__' 未在子进程命名空间中定义。因此,AttributeError

关于python - 无法从 'function_inner' > 获取 <模块 '__mp_main__' 上的属性 'E:\\python\\Test\\test.py',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com