【Mac】在Mac OS X下解決opencv與Python的No module named cv2問題
最近遇到一個影象專案,打算搞一搞,看了一些程式碼,發現用Python處理比較方便,鑑於之前做影象都是使用C++、OpenCV,這次打算看看Python與CV的效能與效果。
我之前的mac上面是安裝了Python與opencv的,但都是分別安裝的,並沒有進行一些合用配置。在敲程式碼的時候,剛寫到import cv2,Idea變報錯:No module named cv2。驚之,於是google解之。
這個問題的主要原因是:python的環境變數問題與opencv的匯入問題。(在mac下可能不叫環境變數,就這麼理解吧...)
1、我們首先需要確定Python的環境變數,執行這個命令:cat ~/.bash_profile | grep PYTHONPATH
如果輸出的是一個路徑,說明這臺mac的PYTHONPATH已經存在,確定是使用的Python的路徑即可;如果輸出是空,說明這臺mac的PYTHONPATH不存在,需要手動新增:vi ~/.bash_profile,將export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH複製進去就好。
2、這是我們需要做的是創造OpenCV的一個軟連線,找到當前版本的opencv的python2.7/site-packages,這個檔案下會有一個cv2.so的檔案,我的opencv版本是3.3.0_3,所有在/Library/Python/2.7/site-packages資料夾下執行如下命令:ln -s /usr/local/Cellar/opencv/3.3.0_3/lib/python2.7/site-packages/cv2.so cv2.so,這時該路徑下會多出一個檔案:
3、重啟終端,在 ~目錄下進入python,然後輸入import cv2,應該就可以正常使用了。
4、注意:在google上看見有的回答說:/usr/local/Cellar/opencv/3.3.0_3/lib/python2.7/site-packages/cv2.so還有一個.py檔案也需要做一個ln -s,我的這個檔案下下只有這個.so檔案,如果你的該檔案下下有一個.py檔案,那麼使用同樣的命令生成一個軟連線即可。