解决MacOS Catalina PyCharm无法获取摄像头权限的问题

3月1日更新…
下载最新的pycharm 2020.3版本在调用摄像头时会询问摄像头权限啦

2019.3月份之前的版本还是要用下面的方法
当使用Pycharm和OpenCV调用摄像头时报错

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

可以看出是一个中断了代码的运行,考虑了一阵子觉得是摄像头的权限问题,这应该是MacOS Catalina新的安全协议导致的,md三个多月了PyCharm还没有从软件上解决这个问题,在调用期间Pycharm也没有发出访问摄像头的对话框

一开始以为是info.plist里没有摄像头权限,但是看了是有的,看了外国一篇相关问题的论坛:https://youtrack.jetbrains.com/issue/IDEA-219288又了解决思路
我的思路是通过终端运行Pycharm,因为Terminal是Apple授权的,我就采用了Iterm2
首先用iterm跑一个摄像头显示的代码

import cv2

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) & 0xFF == ord('c'):
        cv2.imwrite("a.jpg",frame)
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

解决MacOS Catalina PyCharm无法获取摄像头权限的问题_第1张图片

可以看到Iterm2要摄像头权限了,确认即可
之后打开Pycharm的包,找到这个文件

cd /Applications/PyCharm.app/Contents/MacOS/pycharm

把它拖到Iterm2内并运行解决MacOS Catalina PyCharm无法获取摄像头权限的问题_第2张图片

这时候运行你PyCharm里需要调用摄像头的程序,发现就不会报错了

解决MacOS Catalina PyCharm无法获取摄像头权限的问题_第3张图片

OK了,希望PyCharm早日解决这个鬼问题吧

你可能感兴趣的:(pycharm,苹果,mac)