一個月前重裝了電腦,裝了個Python柑肴,版本已經(jīng)是3.6.0霞揉。昨天裝了個pyinstaller庫打包Python應(yīng)用的時候,發(fā)現(xiàn)這個庫只支持到3.5.X晰骑,于是就有了在一個系統(tǒng)上安裝多個Python版本的需求适秩,Python 2在使用上和Python 3差異還是相當(dāng)大的,所以本文探討的也就是Windows下多個Python 3版本的共存方案硕舆。理想的效果是能在控制臺中指定使用的是哪個Python版本以及指定pip工具對哪個Python版本生效秽荞,互不干擾。
下載安裝
這步?jīng)]什么好說明的抚官,為了在控制臺中使用Python和pip扬跋,你還是需要在安裝的時候選擇添加到path路徑,以及安裝pip工具凌节。我這次裝了個x86的Python 3.5.3胁住,所以安裝好后我的path是這樣的:
這時你在控制臺輸入
python --version
趁猴,提示的Python版本是3.6.0。因為控制臺在path變量的路徑中從前到后搜索python程序彪见,首先搜索到的就是Python 3.6.0儡司。
創(chuàng)建快捷方式
假設(shè)你默認使用的Python版本就是python 3.6.0,那么在path變量里Python 3.6的目錄就要在3.5的前面余指。然后為了在命令行中使用Python 3.5捕犬,你需要進入Python 3.5所在的目錄,在當(dāng)前文件夾下創(chuàng)建python.exe的快捷方式酵镜,并將其更名為python35碉碉。
此時在控制臺中輸入python35
,會提示:
'python35' 不是內(nèi)部或外部命令淮韭,也不是可運行的程序
或批處理文件垢粮。
那是因為快捷方式,會有.lnk后綴靠粪,此后綴并沒有在控制臺的搜索范圍中蜡吧。嘗試在控制臺中輸入python35.lnk
,可以發(fā)現(xiàn)打開的Python版本就是Python 3.5了占键。但是更為優(yōu)雅的解決方案是在環(huán)境變量的PATHEXT變量后加入;.lnk
就能搜索到.lnk后綴的命令了昔善。
此外,另一種更簡單的解決方案是復(fù)制python.exe文件畔乙,并更名為python35.exe君仆,我沒做嘗試,理論上應(yīng)該也行牲距。
使用指定的pip
pip的路徑在python安裝目錄下的./Scripts
目錄返咱。所以確保你的環(huán)境變量path包含了兩個Python版本的Scripts文件夾。理論上在安裝時選擇正確的安裝選項就會自動添加相應(yīng)地Scripts文件夾牍鞠。
打開一個Scripts文件夾咖摹,發(fā)現(xiàn)其實是有三個pip命令的,如圖所示:
也就是說皮服,在只安裝了一個python版本的情況下楞艾,比如說Python 3.6.0,在控制臺中 pip龄广、pip3硫眯、pip3.6是等價的。在同時安裝Python3.5和Python3.6的情況下择同,pip和pip3會重復(fù)两入,系統(tǒng)默認選擇path中靠前的pip,但是可以通過pip3.6和pip3.5做區(qū)分敲才。如:
pip3.5 install PyQt5
此命令即在python3.5下安裝PyQt5模塊裹纳。