同時裝了Python3和Python2,怎麼用pip?

來源:互聯網
上載者:User

標籤:參數   系統   block   lock   問題   作者   ofo   win   --   

匿名使用者
連結:https://www.zhihu.com/question/21653286/answer/95532074
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

想學習Python3,但是暫時又離不開Python2。在Windows上如何讓它們共存呢?


目前國內網站經常會讓大家把其中一個python.exe改個名字(嗯,我也這樣講過,在此糾正一下),這樣區分開兩個可執行檔的名字,但是這樣做有一個重大的隱患,就是修改了名字的那個python對應的pip將無法使用。


官方的解法是什嗎?


事實上這個問題幾年以前Python社區就給出了官方解決方案,只不過國內一直沒有注意到罷了。


我們在安裝Python3(>=3.3)時,Python的安裝包實際上在系統中安裝了一個啟動器py.exe,預設放置在檔案夾C:\Windows\下面。這個啟動器允許我們指定使用Python2還是Python3來運行代碼(當然前提是你已經成功安裝了Python2和Python3)。


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


如果你有一個Python檔案叫 hello.py,那麼你可以這樣用Python2運行它


py -2 hello.py


類似的,如果你想用Python3運行它,就這樣


py -3 hello.py


去掉參數 -2/-3


每次運行都要加入參數-2/-3還是比較麻煩,所以py.exe這個啟動器允許你在代碼中加入說明,表明這個檔案應該是由python2解釋運行,還是由python3解釋運行。說明的方法是在代碼檔案的最開始加入一行


#! python2


或者


#! python3


分別表示該代碼檔案使用Python2或者Python3解釋運行。這樣,啟動並執行時候你的命令就可以簡化為


py hello.py


使用pip


當Python2和Python3同時存在於windows上時,它們對應的pip都叫pip.exe,所以不能夠直接使用 pip install 命令來安裝軟體包。而是要使用啟動器py.exe來指定pip的版本。命令如下:


py -2 -m pip install XXXX


-2 還是表示使用 Python2,-m pip 表示運行 pip 模組,也就是運行pip命令了。如果是為Python3安裝軟體,那麼命令類似的變成


py -3 -m pip install XXXX


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


對於Python2使用者還有另外一個困惑,Python2要在代碼檔案頂部增加一行說明,才能夠在代碼中使用中文。如果指明使用的Python版本也需要在檔案頂部增加一行,那哪一行應該放在第一行呢?


#! python2 需要放在第一行,編碼說明可以放在第二行。所以檔案開頭應該類似於:

#! python2# coding: utf-8

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

同時裝了Python3和Python2,怎麼用pip?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.