Python 多重处理似乎需要看似错误的导入组合

问题描述 投票:0回答:1

我有以下使用多处理器包的代码

print ('cpu count=',multiprocessing.cpu_count())

event = multiprocessing.Event() # Assign an event object
lock = multiprocessing.Lock()

with Pool(processes=2) as pool:
    for serverNum in range (2):
        pool.apply_async(funcCall, (event, lock, serverNum))

当代码前面带有

import multiprocessing

我收到错误“池”未定义

如果我改为包含

from multiprocessing import Event, Lock, Pool

我收到错误

print ('cpu count=',multiprocessing.cpu_count())
                    ^^^^^^^^^^^^^^^

NameError:未定义名称“multiprocessing”。您是否忘记导入“多重处理”?

何时包含

from multiprocessing import Event, Lock, Pool
import multiprocessing

它带来了我需要的一切。但包含该模块以及包含模块中各个函数的名称似乎是错误的。

python import multiprocessing nameerror
1个回答
0
投票

您不应该只使用

multiprocessing.Pool
吗,就像您对
multiprocessing.Event()
multiprocessing.Lock()
所做的那样,这样就无需单独导入每个

© www.soinside.com 2019 - 2024. All rights reserved.