Windows下多版本Python共存
當機器上同時裝有 Python2.7 和Python 3.x 兩個版本,會導致在Shell中執行 Python 命令時衝突,比如我們先安裝的Python2.7,
在Path中也預設加入了Python2.7/ 路徑的索引,當我們想要執行Python3.X的Python命令時系統會預設去找Python2.7/目錄下的Python指令去執行,
這個就是問題的關鍵,隨之而來的還有pip命令等 。
解決方式有兩種:
1.根據不同版本分別將Python指令改名。
將 Python2.7 /python.exe 和 將 Python2.7 /pythonw.exe 改為
Python2.7 /python2.exe 和 將 Python2.7 /pythonw2.exe
將Python3.x /python.exe 和 將 Python3.x /pythonw.exe改為
Python3.x /python3.exe 和 將 Python3.x /pythonw3.exe
同時將兩個版本路徑配置到環境變數中
然後在Shell中分別使用不同指令版本來執行
對於pip指令我們通常的使用方式是
pip install 模組名稱
然而我們添加了兩個版本Pyhtonx/Script/ 這兩個目錄下都有pip指令,這又會產生衝突。所以要像下面這樣使用
python2 -m pip install 模組名稱
python3 -m pip install 模組名稱
檢視pip版本:
python2 -m pip -V
python3 -m pip -V
2.藉助其他發行版Python管理包如 Anaconda
anaconda是一個用於科學計算的Python發行版,支援 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。Anaconda利用工具/命令conda來進行package和environment的管理,並且已經包含了Python和相關的配套工具。
這裡先解釋下conda、anaconda這些概念的差別。conda可以理解為一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。包管理與pip的使用類似,環境管理則允許使用者方便地安裝不同版本的python並可以快速切換。Anaconda則是一個打包的集合,裡面預裝好了conda、某個版本的python、眾多packages、科學計算工具等等,所以也稱為Python的一種發行版。其實還有Miniconda,顧名思義,它只包含最基本的內容——python與conda,以及相關的必須依賴項,對於空間要求嚴格的使用者,Miniconda是一種選擇。
conda的設計理念——conda將幾乎所有的工具、第三方包都當做package對待,甚至包括python和conda自身!因此,conda打破了包管理與環境管理的約束,能非常方便地安裝各種版本python、各種package並方便地切換。
它提供了兩個關鍵功能:
- :提供包管理,功能類似於 pip,Windows 平臺安裝第三方包經常失敗的場景得以解決。
- :提供虛擬環境管理,功能類似於 virtualenv,解決了多版本Python並存問題。
下載後通過以下方式建立新環境:
# 基於 python3.6 建立一個名為test_py3 的環境
conda create --name test_py3 python=3.6
# 基於 python2.7 建立一個名為test_py2 的環境
conda create --name test_py2 python=2.7
# 啟用 test 環境
activate test_py2 # windows
source activate test_py2 # linux/mac
# 切換到python3
activate test_py3
啟用環境時會提示下載擴充套件包(預設會安裝以下元件包):