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()
可以看到Iterm2要攝像頭權限了,確認即可
之後打開Pycharm的包,找到這個文件
cd /Applications/PyCharm.app/Contents/MacOS/pycharm
把它拖到Iterm2內並運行
這時候運行你PyCharm裏需要調用攝像頭的程序,發現就不會報錯了
OK了,希望PyCharm早日解決這個鬼問題吧