前言
相信很多朋友在使用 python 的時候,都裝過 2、3 版本相容。以前我裝相容的時候都是手動改 python.exe 的名稱為 python2.exe 或 python3.exe。今天我看過一篇文章,才知道不應該去改 python 主程式的名稱來實現相容,這會造成很多問題。比如 pip 找不到 python 主程式檔案的位置。所以,保持 python2 和 python3 環境的官方性可以省下很多事情,不應該去亂改程式的名稱。
注意:這裡不應該亂改,是指使用改後的 python 環境。但是,可以通過修改主程式的名稱避開當前版本,當想使用的時候再改回來,這是可以的。
關於 Win10 環境變數的問題
當我們在命令列工具中,執行某條指令的時候,系統會先在當前目錄尋找執行程式,如果沒有找到,就會去使用者的環境變數中定義的路勁裡找命令,如果還沒有,就去系統的環境變數中尋找。
由於系統環境變數一般有多條,這就涉及到尋找順序的問題。
通過我的測試,系統會從上至下尋找可執行程式
並且,當找到命令時,將直接執行命令,如果後面環境變數還有相同命令,將會忽略掉。
因此,看上圖,我把 python3 的執行環境放在了 python2 環境的前面。
這就造成了我執行 python --version
和 pip --version
返回全是 python3 的環境
那麼,如果我想用 python2 的環境怎麼辦呢?
改 python2 安裝目錄中的 python.exe 為 python2.exe?
前言說了,這樣是不行的,我不應該通過修改 python 執行程式去實現環境相容。
下面就說一下我的思路,我也是通過修改 python 執行程式去實現相容,但並不是使用改後的 python。
個人思路
-
隨便一個盤,建立一個 Shell 目錄,用來存放自己的 bat 批處理工具,然後把環境加到系統中。
-
建立兩個批處理檔案:python2.bat 和 python3.bat
python2.bat
@echo off rename "C:\Program Files\Python37\python.exe" python.exe.disabled rename "C:\Program Files\Python37\Scripts\pip.exe" pip.exe.disabled
python3.bat
@echo off rename "C:\Program Files\Python37\python.exe.disabled" python.exe rename "C:\Program Files\Python37\Scripts\pip.exe.disabled" pip.exe
上面的
C:\Program Files\Python37
請改成你們自己的路徑。 -
最終結果如下圖
最後說一點
相信熟悉 Window 的朋友,已經瞭解了。我這是運用系統環境從上至下尋找命令的特性,完成的 python2 和 python3 環境互切。
有更好或者當前方法有不足之處,歡迎大家指正評論。
python 初學者的獨白(大菜鳥一隻。。。)