當同時安裝Python2和Python3後,如何相容並切換使用詳解(比如pip使用)

Como0413發表於2019-03-23

由於歷史原因,Python有兩個大的版本分支,Python2和Python3,又由於一些庫只支援某個版本分支,所以需要在電腦上同時安裝Python2和Python3,因此如何讓兩個版本的Python相容,如何讓指令碼在對應的Python版本上執行,這個是值得總結的。

對於Ubuntu 16.04 LTS版本來說,Python2(2.7.12)和Python3(3.5.2)預設同時安裝,預設的python版本是2.7.12。

當然你也可以用python2來呼叫。

如果想呼叫python3,就用python3.

 

對於Windows,就有點複雜了。因為不論python2還是python3,python可執行檔案都叫python.exe,在cmd下輸入python得到的版本號取決於環境變數裡哪個版本的python路徑更靠前,畢竟windows是按照順序查詢的。比如環境變數裡的順序是這樣的:

那麼cmd下的python版本就是2.7.12。

反之,則是python3的版本號。

 

這就帶來一個問題了,如果你想用python2執行一個指令碼,一會你又想用python3執行另一個指令碼,你怎麼做?來回改環境變數顯然很麻煩。

網上很多辦法比較簡單粗暴,把兩個python.exe改名啊,一個改成python2.exe,一個改成python3.exe。這樣做固然可以,但修改可執行檔案的方式,畢竟不是很好的方法。

我仔細查詢了一些python技術文件,發現另外一個我覺得比較好的解決辦法。

借用py的一個引數來呼叫不同版本的Python。py -2呼叫python2,py -3呼叫的是python3.

當python指令碼需要python2執行時,只需在指令碼前加上,然後執行py xxx.py即可。

#! python2

當python指令碼需要python3執行時,只需在指令碼前加上,,然後執行py xxx.py即可。

#! python3

就這麼簡單。

同時,這也完美解決了在pip在python2和python3共存的環境下報錯,提示Fatal error in launcher: Unable to create process using ‘”’的問題。

當需要python2的pip時,只需

py -2 -m pip install xxx

當需要python3的pip時,只需

py -3 -m pip install xxx

 

python2和python3的pip package就這樣可以完美分開了

轉自:http://www.cnblogs.com/shabbylee/p/6792555.html

相關文章