gpt4 book ai didi

python - 操作系统错误 : [WinError 87]The parameter is incorrect

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:43 27 4
gpt4 key购买 nike

我正在 python 教程网站上学习分布式进程:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431929340191970154d52b9d484b88a7b343708fcc60000#0

这是作为主进程运行的教程代码。

任务大师.py

import random, time, queue
from multiprocessing.managers import BaseManager


task_queue = queue.Queue()
result_queue = queue.Queue()

class QueueManager(BaseManager):
pass

QueueManager.register('get_task_queue', callable=lambda:task_queue)
QueueManager.register('get_result_queue', callable=lambda:result_queue)
manager = QueueManager(address=('',5000), authkey=b'abc')
manager.start()
task = manager.get_task_queue()
result = manager.get_result_queue()
for i in range(10):
n = random.randint(0,10000)
print('Put task %d...' %n)
task.put(n)
print('Try get result...')
for i in range(10):
r = result.get(timeout = 10)
print('Result:%s'%r)
manager.shutdown()
print('master exit.')

代码未完成,因为它引发了一些错误,当我绑定(bind)到计算机上运行它时,我不知道如何处理这些错误。

错误

D:\py>Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Raven\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 99, in spawn_main
new_handle = reduction.steal_handle(parent_pid, pipe_handle)
File "C:\Users\Raven\AppData\Local\Programs\Python\Python36\lib\multiprocessing\reduction.py", line 82, in steal_handle
_winapi.PROCESS_DUP_HANDLE, False, source_pid)
OSError: [WinError 87] The parameter is incorrect。

最佳答案

Windows 中的多处理与 Linux 不同 - 具体来说,Windows 使用 spawn 而 linux 使用 fork(好吧,还有更多,但这是一个总结)。

您正在学习的教程是根据提示在 linux 上编写的,而您在 windows 上。您可以告诉 multiprocessing 使用 spawn 而不是 fork,方法如下:

import random, time, queue
import multiprocessing
multiprocessing.set_start_method('spawn')

from multiprocessing.managers import BaseManager

这有帮助吗?

关于python - 操作系统错误 : [WinError 87]The parameter is incorrect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48627793/

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