Windows系統(tǒng)下多版本pip的共存問(wèn)題詳解
前言
可能很多人一看到這個(gè)標(biāo)題直接就關(guān)閉了,這么簡(jiǎn)單和low的問(wèn)題有必要說(shuō)出來(lái)嗎?一看就知道是個(gè)Python的小白。如果你是這么想的話,那么就沒(méi)有必要看下去了,因?yàn)閷?duì)你來(lái)說(shuō)也沒(méi)有什么幫助。
這個(gè)問(wèn)題,確實(shí)很簡(jiǎn)單,簡(jiǎn)單的不能再簡(jiǎn)單。但是在實(shí)際工作中確實(shí)會(huì)遇到。
實(shí)話說(shuō),對(duì)于經(jīng)常在gentoo、archlinux這類(lèi)版本上玩的人來(lái)說(shuō),完全可以不考慮這個(gè)問(wèn)題。但是,你的同事或朋友卻不一定與你一樣。
在這里,我們要解決2個(gè)問(wèn)題:
- 多版本pip共存問(wèn)題
- 多版本Python共存問(wèn)題
說(shuō)到這里,可能會(huì)有人說(shuō)直接用pyenv不就好了,省時(shí)又省力。但是,pyenv不支持Windows系統(tǒng)。
實(shí)話說(shuō),雖然你百度一下,確實(shí)有N篇文章說(shuō)的頭頭是道,但是當(dāng)你去實(shí)踐的時(shí)候就會(huì)發(fā)現(xiàn)根本就是不行的。
多版本pip共存
在這里我們?cè)谝慌_(tái)已經(jīng)安裝了Python3.5.3的Windows的系統(tǒng)上安裝Python2的版本。
安裝完成后,我們切換到Python2安裝目錄下的Scripts目錄下,將其中的pip.exe文件修改為pip27.exe或直接將其刪除,然后我們運(yùn)行如下的命令:
pip2 -V pip 8.1.1 from C:\Python27\lib\site-packages (python 2.7) pip -V pip 9.0.1 from C:\Python35\lib\site-packages (python 3.5)
可以看到,這樣我們就解決了多版本pip共存的問(wèn)題了。
多版本Python共存
下面我們來(lái)看多版本Python共存的問(wèn)題。網(wǎng)上很多教程讓我們把不同Python版本的解釋器文件直接進(jìn)行修改,結(jié)果Python版本是可以共存了,但是pip卻無(wú)法使用了。
對(duì)于這種情況,我們有2種方式,1種是在多版本pip共存的情況下,使用如下的方式啟動(dòng)Python不同版本:
py -2 py -3
這樣就分別啟動(dòng)了Python2和Python3。
實(shí)話說(shuō),這種方式對(duì)于處女座的人來(lái)說(shuō),覺(jué)得并不是很完美。下面我們來(lái)看1種在多版本pip共存情況下實(shí)現(xiàn)多版本Python共存的實(shí)現(xiàn)。
我們直接將各個(gè)版本中的Python解釋器文件python.exe復(fù)制1份,然后分別修改為python2.exe和python3.exe。
這樣我們就完成了版本共存的問(wèn)題了,如下圖所示:
在這里由于最后安裝的是Python2版本,并且自動(dòng)將其添加到環(huán)境變量中,因?yàn)槟J(rèn)輸入Python時(shí)啟動(dòng)的是Python2。
當(dāng)然,上述的問(wèn)題只是其中的1種解決方式,如果套用數(shù)學(xué)的術(shù)語(yǔ),只是所有解集中的1種。
對(duì)于Python這樣的語(yǔ)言,如果只會(huì)1種方式,往往都是在打醬油的。一般情況下,同1個(gè)問(wèn)題至少有2-3種的方式,選取其中最好的1種方式才是正道。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Python使用selenium + headless chrome獲取網(wǎng)頁(yè)內(nèi)容的方法示例
這篇文章主要介紹了Python使用selenium + headless chrome獲取網(wǎng)頁(yè)內(nèi)容的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10pd.to_datetime中時(shí)間object轉(zhuǎn)換datetime實(shí)例
本文主要介紹了pd.to_datetime中時(shí)間object轉(zhuǎn)換datetime實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03利用Python中SocketServer 實(shí)現(xiàn)客戶端與服務(wù)器間非阻塞通信
本文主要介紹了利用Python中SocketServer 實(shí)現(xiàn)客戶端與服務(wù)器間非阻塞通信示例代碼,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12Python使用quote()函數(shù)對(duì)接口請(qǐng)求值進(jìn)行URL編碼
在接口測(cè)試自動(dòng)化中,我們經(jīng)常會(huì)遇到需要構(gòu)建HTTP請(qǐng)求的情況,尤其是POST請(qǐng)求,確保所有的參數(shù)都正確地進(jìn)行了URL編碼是非常重要的一步,Python標(biāo)準(zhǔn)庫(kù)中的urllib.parse.quote函數(shù)就是專(zhuān)門(mén)用來(lái)進(jìn)行這種轉(zhuǎn)碼的工具,所以本文介紹了使用quote()函數(shù)對(duì)接口請(qǐng)求值進(jìn)行URL編碼2024-08-08python刪除指定列或多列單個(gè)或多個(gè)內(nèi)容實(shí)例
這篇文章主要介紹了python刪除指定列或多列單個(gè)或多個(gè)內(nèi)容實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06pytho matplotlib工具欄源碼探析一之禁用工具欄、默認(rèn)工具欄和工具欄管理器三種模式的差異
這篇文章主要介紹了pytho matplotlib工具欄源碼探析一之禁用工具欄、默認(rèn)工具欄和工具欄管理器三種模式的差異,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02python如何使用python-docx調(diào)整Word文檔樣式
本文介紹了如何修改文字字體樣式、對(duì)齊樣式、行間距以及段前段后間距,并通過(guò)效果展示給出參考,適用于需要進(jìn)行文檔編輯的讀者2024-09-09