Part1:解決Python2和Python3的同時(shí)使用問(wèn)題蓄喇,并且優(yōu)先使用python2
因?yàn)闅v史原因,工作中要使用Python2的不在少數(shù)氧腰。比如有些工具是使用python2編寫(xiě)的枫浙,甚至是源碼也沒(méi)有。改寫(xiě)這部分工具費(fèi)時(shí)古拴,也不值得箩帚。
但是,python之父Guido van Rossum(吉多·范羅·蘇姆)黄痪,早就提出2020年1月1日之后不在支持更新紧帕。這個(gè)時(shí)候,又需要工作中使用的是python3∥Υ颍現(xiàn)在在執(zhí)行的python2的pip安裝時(shí)是嗜,都有明顯提示。
天生的矛盾解決不好挺尾,會(huì)給初級(jí)使用者帶來(lái)麻煩鹅搪。本文主要解決這方面的問(wèn)題。
本文基于這樣的假設(shè):
1.??? 使用python2作為默認(rèn)python遭铺。保證兼容丽柿。
2.??? 同時(shí)使用python3,開(kāi)發(fā)現(xiàn)有應(yīng)用和腳本魂挂。在現(xiàn)有腳本中兼容python2或者直接放棄對(duì)python2的支持航厚。
具體步驟:
1.??下載安裝包
下載路徑www.python.org->download->Viewthe full list of downloads.下載Python2.7最新版本和python3.6最新版本。(我們沒(méi)有必要跟著3.7走锰蓬,有些庫(kù)還在兼容中幔睬。)
下載內(nèi)容選擇Windows x86-64 MSI installer,MSI可以直接安裝芹扭。64位麻顶,是因?yàn)椴僮飨到y(tǒng)時(shí)支持64位的赦抖,如圖:
得到兩個(gè)MSI的安裝包。
2.??安裝在D盤(pán)
將python2安裝在D盤(pán)辅肾,如圖:(python3類似队萤。)
3.??編輯環(huán)境變量,并修改python3中文件
個(gè)人或者系統(tǒng)的環(huán)境變量將python2的位置放在前面矫钓,python3的位置放在后面要尔。右擊“我的電腦”,選擇屬性后如圖設(shè)置:
將python3的python.exe pip.exe修改為python3.exe和pip3.exe,確保命令行中用到的python和pip只可能是python2的版本(這樣修改后新娜,和環(huán)境變量的先后沒(méi)有關(guān)系了赵辕。根本就不存在python3的python.exe和pip.exe文件)
同時(shí)需要修改pip3.exe中的python解析器的位置,為更改后的d:\python36\python3.exe概龄。(重要还惠!不然在這個(gè)目錄下執(zhí)行pip3.exe會(huì)找不到python.exe。)
4.? 最后確認(rèn)命令行解析正確
?
總結(jié):
通過(guò)上面的修改蚕键,win10系統(tǒng)會(huì)使用python2作為默認(rèn)python。
同時(shí)python3也順利安裝在系統(tǒng)中了衰粹,可以通過(guò)使用python3 xxx.py和pip3 install xxx 操作python3解析器锣光。
Part2: 解決安裝速度問(wèn)題
Pip 指定國(guó)內(nèi)的數(shù)據(jù)源,提升下載安裝速度铝耻。國(guó)內(nèi)有兩個(gè)主要的源誊爹,一個(gè)是清華的,一個(gè)是豆瓣的田篇。
使用方式也有兩種替废,一種是臨時(shí)使用,一種是永久使用泊柬。
1.臨時(shí)使用:
可以在使用pip的時(shí)候在后面加上-i參數(shù)椎镣,指定pip源,這里臨時(shí)使用清華的源兽赁。例如: pip install scrapy -i?https://pypi.tuna.tsinghua.edu.cn/simple
2.永久修改:
Win10機(jī)器:
在自己的主目錄下建立一個(gè)pip目錄中間放置一個(gè)pip.ini文件內(nèi)容如下:
[global]
trusted-host = ?pypi.douban.com
index-url = https://pypi.douban.com/simple
#建議使用豆瓣的源状答,url寫(xiě)上https,加密傳輸刀崖。
3.對(duì)比一下效果:
在我們配置完成pip.ini之后惊科,我們使用pip install的方式安裝包,默認(rèn)就是到豆瓣的連接去下載安裝亮钦。
Part3:判斷當(dāng)前運(yùn)行的解析器是否是python3
通過(guò)上面的修改,經(jīng)常會(huì)錯(cuò)誤的將需要python3解析器解析的腳本用python2解析器執(zhí)行了。
Python的sys包中version屬性蜡娶,指明了運(yùn)行該腳本的當(dāng)前解析器版本混卵。我們可以例用這個(gè)特點(diǎn),發(fā)現(xiàn)調(diào)用的解析器錯(cuò)了窖张,提示用戶幕随。
1.sys.version=>'2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26)[MSC v.1500 64 bit (AMD64)]'
2.1如果發(fā)現(xiàn)是python2的可以直接調(diào)用exit()退出。
2.2通過(guò)six包或者其他方式,代碼上兼容python2宿接。(不建議赘淮,python2以后會(huì)越來(lái)越少。)
?