gpt4 book ai didi

python - 与多处理错误的另一个混淆, 'module' 对象没有属性 'f'

转载 作者:IT老高 更新时间:2023-10-28 21:42:21 25 4
gpt4 key购买 nike

我知道这个问题之前已经回答过了,但似乎直接执行脚本“python filename.py”是行不通的。我在 SuSE Linux 上安装了 Python 2.6.2。

代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from multiprocessing import Pool
p = Pool(1)
def f(x):
return x*x
p.map(f, [1, 2, 3])

命令行:

> python example.py
Process PoolWorker-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/multiprocessing/process.py", line 231, in _bootstrap
self.run()
File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python2.6/multiprocessing/pool.py", line 57, in worker
task = get()
File "/usr/lib/python2.6/multiprocessing/queues.py", line 339, in get
return recv()
AttributeError: 'module' object has no attribute 'f'

最佳答案

重构您的代码,以便在创建 Pool 实例之前定义 f() 函数。否则worker看不到你的函数。

#!/usr/bin/python
# -*- coding: utf-8 -*-

from multiprocessing import Pool

def f(x):
return x*x

p = Pool(1)
p.map(f, [1, 2, 3])

关于python - 与多处理错误的另一个混淆, 'module' 对象没有属性 'f',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782961/

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