最近因為在已經安裝了tensorflow的環境中又裝了個opencv,結果突然發現import tensorflow一句竟然會導致程序崩潰!?到網上查了下發現是因為conda install opencv3會導致舊版本的numpy覆蓋新版本的tensorflow帶的numpy導致各種復雜的問題。在嘗試重裝numpy無效后我決定重新配置一次環境,並記錄下過程和大家分享:
1.Anaconda的安裝
anaconda的安裝是十分容易的,不過如果選了add to path容易出錯,建議裝好后手動配置環境變量。
2.創建並激活虛擬環境
由於上次先裝的tensorflow結果出錯了,所以這次我決定先裝opencv。當然第一步是創建一個虛擬環境:
第一步,打開AnacondaPrompt
第二步,輸入
conda create -n <your_enviroment_name> python=<any_version>
尖括號<>中的內容可以替換為你想要的環境名和python版本,我這里使用的是3.6.8。
這樣我們就創建好了一個虛擬環境
activate <your_enviroment_name>
激活你的虛擬環境,網上提供了很多安裝opencv的方法,但大多在我們這里不適用。
這里介紹一下無效的方法,也是給自己提個醒,不能完全照抄網上的
=============================分割線================================
無效的方法一:conda install -c https://conda.anaconda.org/menpo opencv3這條代碼或許對於其他python版本有用,但windows上對於python3.6是無效的
如圖所示,在windows下該頻道內的opencv最高支持到python3.5,所以如果想通過這條命令安裝opencv3就用低一點的版本吧。
無效的方法二:pip3 install opencv-python==3.4.3.18(這個版本號可以隨意換)
pip3 install opencv-contrib-python==3.4.3.18
這兩條命令直接運行是會安裝在Anaconda的安裝目錄下:Anaconda3/Lib/site-packages中,所以對於我們的虛擬環境來說是沒有效果的。
==============================分割線=============================
3.安裝opencv和tensorflow
我的方法:
1.還是在虛擬環境中,使用cd命令先來到Anaconda3/envs/<your_enviroment_name>/Scripts目錄下(這里是虛擬環境中pip.exe的安裝目錄)
2.輸入pip.exe install opencv-python==3.4.3.18
pip.exe install opencv-contrib-python==3.4.3.18
3.輸入conda install tensorflow(-gpu)
使用conda install的好處就是它會幫你檢查依賴包,以免你安裝了錯誤的版本或少安裝,但有時也會出問題,比如先使用conda install tensorflow-gpu,再使用conda install opencv3,那么你的numpy版本就很可能被替換掉。
請注意你只能在該虛擬環境下使用這兩個庫,在base環境時(剛打開anaconda prompt時的環境)是不能使用的,而如果想在spyder、jupyter中使用,你還需要在該環境中安裝spyder等。可以使用conda install spyder。