windows下同時裝了Python3和Python2,如何區分使用?


1.前言

想學習Python3,但是暫時又離不開Python2。在Windows上如何讓它們共存呢?
目前國內網站經常會讓大家把其中一個python.exe改個名字,這樣區分開兩個可執行文件的名字,但是這樣做有一個重大的隱患,就是修改了名字的那個python對應的pip將無法使用。
事實上這個問題幾年以前Python社區就給出了官方解決方案,只不過國內一直沒有注意到罷了。

2.運行代碼

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

如果你有一個Python文件叫 hello.py,那么可以這樣用Python2運行它

py -2 hello.py

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

py -3 hello.py

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

# !python2

或者

# !python3

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

py hello.py

3.使用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

4.注意

對於Python2用戶還有另外一個困惑,Python2要在代碼文件頂部增加一行# coding: utf-8,才能夠在代碼中使用中文。如果指明使用的Python版本也需要在文件頂部增加一行#! python2,那么,哪個應該放在第一行呢?

解決的辦法是:
#! python2 需要放在第一行,編碼說明可以放在第二行。所以文件開頭應該類似於:

# !python2
# coding: utf-8

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM