Python 多处理 windows 和 jupyter
Python multiprocessing windows and jupyter
我正在尝试 运行 使用 pathos 包的一些多处理例程。这是我的代码:
import multiprocessing as mp
import time
def square(x):
return x*x
if __name__=="__main__":
start_time = time.time()
p = mp.Pool(3)
function_results = p.map(square,[1,2,3]) #ordered
p.close()
print("--- %s seconds ---" % (time.time() - start_time))
我正在尝试 运行 在 Win 10 上使用 Jupyter notebook。
代码不会 运行 并生成以下错误:
Process SpawnPoolWorker-2:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\process.py", line 252, in _bootstrap
self.run()
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\pool.py", line 108, in worker
task = get()
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\queues.py", line 337, in get
return ForkingPickler.loads(res)
AttributeError: Can't get attribute 'square' on <module '__main__' (built-in)>
此代码 运行 适用于 Ubuntu 16.04。关于如何修复它有什么建议吗?
尝试将函数 square
放在一个单独的文件中,然后将其导入,如
中所述
我正在尝试 运行 使用 pathos 包的一些多处理例程。这是我的代码:
import multiprocessing as mp
import time
def square(x):
return x*x
if __name__=="__main__":
start_time = time.time()
p = mp.Pool(3)
function_results = p.map(square,[1,2,3]) #ordered
p.close()
print("--- %s seconds ---" % (time.time() - start_time))
我正在尝试 运行 在 Win 10 上使用 Jupyter notebook。
代码不会 运行 并生成以下错误:
Process SpawnPoolWorker-2:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\process.py", line 252, in _bootstrap
self.run()
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\pool.py", line 108, in worker
task = get()
File "C:\Users\user\AppData\Local\conda\conda\envs\tensorflow\lib\multiprocessing\queues.py", line 337, in get
return ForkingPickler.loads(res)
AttributeError: Can't get attribute 'square' on <module '__main__' (built-in)>
此代码 运行 适用于 Ubuntu 16.04。关于如何修复它有什么建议吗?
尝试将函数 square
放在一个单独的文件中,然后将其导入,如