python2與python3并存問題

最近想學(xué)習(xí)一下TensorFlow,系統(tǒng)是windows,之前安裝了python2.7,但是TensorFlow在windows下只有python3才能支持安裝,所以去google搜了一下,找到了一個(gè)很好的回答解決python2和python3并存問題。下面貼上知乎的回答。

出處:https://www.zhihu.com/question/21653286/answer/95532074
來源:知乎

想學(xué)習(xí)Python3,但是暫時(shí)又離不開Python2。在Windows上如何讓它們共存呢?

目前國內(nèi)網(wǎng)站經(jīng)常會(huì)讓大家把其中一個(gè)python.exe改個(gè)名字(嗯,我也這樣講過,在此糾正一下),這樣區(qū)分開兩個(gè)可執(zhí)行文件的名字,但是這樣做有一個(gè)重大的隱患,就是修改了名字的那個(gè)python對(duì)應(yīng)的pip將無法使用。

官方的解法是什么?

事實(shí)上這個(gè)問題幾年以前Python社區(qū)就給出了官方解決方案,只不過國內(nèi)一直沒有注意到罷了。

我們?cè)诎惭bPython3(>=3.3)時(shí),Python的安裝包實(shí)際上在系統(tǒng)中安裝了一個(gè)啟動(dòng)器py.exe,默認(rèn)放置在文件夾C:\Windows\下面。這個(gè)啟動(dòng)器允許我們指定使用Python2還是Python3來運(yùn)行代碼(當(dāng)然前提是你已經(jīng)成功安裝了Python2和Python3)。

有關(guān)Python2和3的安裝,可以參見Python部落(http://python.freelycode.com)-->影音學(xué)堂-->《0基礎(chǔ)1小時(shí),Python入門》的第一節(jié)。

如果你有一個(gè)Python文件叫 hello.py,那么你可以這樣用Python2運(yùn)行它

py -2 hello.py

類似的,如果你想用Python3運(yùn)行它,就這樣

py -3 hello.py

去掉參數(shù) -2/-3

每次運(yùn)行都要加入?yún)?shù)-2/-3還是比較麻煩,所以py.exe這個(gè)啟動(dòng)器允許你在代碼中加入說明,表明這個(gè)文件應(yīng)該是由python2解釋運(yùn)行,還是由python3解釋運(yùn)行。說明的方法是在代碼文件的最開始加入一行

#! python2

或者

#! python3

分別表示該代碼文件使用Python2或者Python3解釋運(yùn)行。這樣,運(yùn)行的時(shí)候你的命令就可以簡(jiǎn)化為

py hello.py

使用pip

當(dāng)Python2和Python3同時(shí)存在于windows上時(shí),它們對(duì)應(yīng)的pip都叫pip.exe,所以不能夠直接使用 pip install 命令來安裝軟件包。而是要使用啟動(dòng)器py.exe來指定pip的版本。命令如下:

py -2 -m pip install XXXX

-2 還是表示使用 Python2,-m pip 表示運(yùn)行 pip 模塊,也就是運(yùn)行pip命令了。如果是為Python3安裝軟件,那么命令類似的變成

py -3 -m pip install XXXX

#! python2 和 # coding: utf-8 哪個(gè)寫在前面?

對(duì)于Python2用戶還有另外一個(gè)困惑,Python2要在代碼文件頂部增加一行說明,才能夠在代碼中使用中文。如果指明使用的Python版本也需要在文件頂部增加一行,那哪一行應(yīng)該放在第一行呢?

#! python2 需要放在第一行,編碼說明可以放在第二行。所以文件開頭應(yīng)該類似于:

 #! python2
 # coding: utf-8

有了這些技巧,Python2和Python3就可以愉快地在一起玩耍了~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容