Windows 下 Python 分布式进程传递对象为何引发 PermissionError?
在 python 中使用分布式进程时,可能会遇到一些令人困惑的问题。例如,在 windows 系统中创建进程时,传递对象作为参数可能会导致 permissionerror。
问题描述
以下代码示例演示了此问题:
url_manager = process(target=url_manager_proc, args=(url,)) result_solve = process(target=result_solve_proc, args=()) store = process(target=store_proc, args=()) url_manager.start() result_solve.start() store.start()
然而,由于某些原因,需要将一个对象作为参数传递给 url_manager_proc 函数。但这会导致以下错误:
PermissionError: [WinError 5] 拒绝访问
解决方案
令人惊讶的是,此问题的解决方案不是修改代码或使用不同的模块,而是更换操作系统。
改用 linux
经过测试,在 ubuntu 18.04 linux 系统中运行相同的代码不会产生 permissionerror。这意味着 windows 系统存在某种限制,会阻止进程之间传递对象。
因此,如果您遇到此问题,可以考虑改用 linux 操作系统以解决分布式进程的问题。
以上就是Windows 下 Python 分布式进程传递对象为何引发 PermissionError?的详细内容,更多请关注其它相关文章!