此错误的原因是:“ PermissionError:[WinError 5]访问被拒绝”

时间:2019-01-14 06:52:51

标签: python-3.x pycharm multiprocessing

我尝试在Pycharm2018.3.3上运行此示例代码,但没有成功。但是相同的代码可以在IDLE上运行而没有任何错误。

我的环境是Python3.7 + Windows10。

from multiprocessing import Process, Queue

def f(q):
    q.put([42, None, 'hello'])

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))
    p.start()
    print(q.get())    # prints "[42, None, 'hello']"
    p.join()
Process Process-1:
Traceback (most recent call last):
  File "C:\Users\WYM\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\process.py", line 297, in _bootstrap
    self.run()
  File "C:\Users\WYM\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "E:\Spider2\ControlNode\test.py", line 4, in f
    q.put([42, None, 'hello'])
  File "C:\Users\WYM\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\queues.py", line 82, in put
    if not self._sem.acquire(block, timeout):
PermissionError: [WinError 5] Access is denied.

2 个答案:

答案 0 :(得分:3)

此问题可能是known bug with Python 3.7.2

我遇到了相同的问题,并通过使用Python 3.7.0创建新的虚拟环境来解决了该问题

答案 1 :(得分:-1)

尝试以管理员身份运行PyCharm。 右键单击PyCharm快捷方式上的,然后按以管理员身份运行