1. 程式人生 > >解決win平臺anaconda2和anaconda3共存時衝突問題

解決win平臺anaconda2和anaconda3共存時衝突問題

一、python設定

  1.重新命名

    anaconda2和anaconda3同時安裝成功後,系統中會存在兩個python.exe。此時在相應目錄下開啟命令窗,如Anaconda2\,執行python將執行anaconda2的python,同理在Anaconda3\,執行python將執行anaconda3的python。為了解決這個衝突問題,我們將Anaconda3\目錄下的python.exe重新命名為python3.exe,此時執行python3將開啟anaconda3,執行python將會開啟anaconda2。

 2.新增環境變數

   上面所說,每次執行python或者python3都要進入相應目錄下開啟命令窗,否則會報python不是內部或外部命令的錯誤,非常不便。因此我們需要將python和python3的路徑告知系統,以便我們輸入python或者python3時,系統能夠正確的找到應該執行的程式,這也就是環境變數的作用。

開啟環境變數的順序:右鍵我的電腦->屬性->高階系統設定->環境變數->PATH

依次將Anaconda2,Anaconda2\Scripts,Anaconda3,Anaconda3\Scripts新增進系統的環境變數。

二、解決pip衝突

 如上面的python衝突一樣, 同時安裝anaconda2和anaconda3後,系統中會存在兩個pip.exe。我們執行pip命令時系統可能會執行和我們預期不一樣的pip(和Anaconda2\Scripts,Anaconda3\Scripts在環境變數中的順序有關)。為了明確我們執行的pip屬於哪一個,可以通過pip -V命令檢視。如下所示,可以根據顯示的路徑判斷我們執行的是哪一個版本的pip。

根據上面修改python為python3的思路,我們自然想到可以將scripts目錄下的pip.exe修改為pip3.exe,這樣就可以解決衝突。但是經過筆者測試,win平臺下直接修改是不可以的,原因是pip.exe的名稱被多個腳本當成了引數(吐槽一下,這種耦合方式真是蛋疼),因此下面提供一個簡單粗暴的解決方法,重灌anaconda3的pip。新版本的pip會預設生成pip3命令滴。

pip設定

以下將提供一個修改方式,即重新安裝Anaconda3的pip,使得兩個版本pip能夠共存。

Anaconda2:

Anaconda2 Scripts中的pip.exe不用修改,可以刪除pip2.exe和對應的pip2.7.exe(也可以不刪除)

Anaconda3:(劃重點)重灌pip的命令

 python3 -m pip install --upgrade pip --force-reinstall

Anaconda3\ Scripts中的pip.exe建議刪除


三、結果

經過上面的處理之後,我們將會有python,python3,pip,pip3四個命令,互不衝突。

想用python2就執行python,想用python3就執行python3.

箱裝python2版本的庫就用pip,想安裝python3版本的庫就用pip3