一般的做法是为非并行部分添加 if __name__==‘__main__’,但该做法只有在将整个文件以"Run File in Python Console"的方式运行时才有效,这对于喜欢直接在Python Console执行选中代码运行测试程序的人来讲可能不太方便。为这个问题查了很久网上的解决办法,但都无法解决,因此才在本人的尝试下有了本文的这个方法,希望以后能帮助到大家。
这里先直接上解决办法:安装ipython包(可以是当时的最新版本)。
一、示例的报错演示
以下面的代码为例,展示具体的报错:
# 示例
import multiprocessing
pool=multiprocessing.Pool(processes=4)
直接选中上述两行在Python Console的结果:


从上面这2张图可以看到,即使是最简单的生成进程池操作,直接在Python Console里运行都会重复不断地报以下错误。强制结束整个程序后还会报“PermissionError: [

当在PyCharm的Python Console中使用multiprocessing模块时,可能会遇到'PermissionError: [WinError 5] 拒绝访问'的问题。常规解决方案是在代码的非并行部分添加`if __name__ == '__main__'`,但这并不适用于直接在Console执行代码的情况。解决此问题的方法是安装ipython。安装完成后,关闭并重新启动Python Console,错误将不再出现,可以正常运行multiprocessing代码。
最低0.47元/天 解锁文章
1774

被折叠的 条评论
为什么被折叠?



