本熊得知現(xiàn)在比較流行的分析語言有R和Python,于是有了新一輪的實驗,但是作為初學(xué)者,聽聞Python的版本間差異很大,本熊的教科書用的也是Python2.7.1的版本。但時代總是載進步,于是本熊也裝上Python3.5 于是就作死了,在安裝pip時,出現(xiàn)了VersionConflict的錯誤提示,是想刪刪不了,重裝也沒用,但本熊回想到了Nutch實驗中的招數(shù),便有了以下方案
本熊的配置:
Linux Mint 17.3 "Rosa"
(可能與Unubtu有小小的不同,但不影響)-
問題描述:
無法使用pip命令,提示VersionConflict
Python-pip VersionConflict
pkg_resources.VersionConflict
Requirement.parse('pip==1.5.4'))
1.問題的起因
因為把Python寫成了typhon,慢著,這不是真的原因,本熊開個玩笑,雖然本熊就寫著typhon在圖書館搜了一天,居然還找到了想要的書。看來現(xiàn)在的圖書館搜索引擎也蠻牛的。
安裝了多版本的python
本熊為了學(xué)習(xí)python安裝了不同的版本,各位也可以在/usr/local/lib
目錄下看見自己安裝的python版本,本熊的是這樣的
可以看出本熊的機子上有2.7 , 3.4 , 3.5這三個版本的python,在之前關(guān)于python的安裝指南中,本熊有提到如何替換新舊版本的python,就是修改軟連接的方法,但這招在這里不管用。
于是需要投機取巧啦,本熊馬上附上
2.這個是錯誤的解決辦法,試了必定重裝
1.這個是反面教材,但這里的方法是解決一些棘手問題的最終手段,不要輕易嘗試
2.凡是看到修改軟連接的方法一定要三思,就是 ln 命令的那種
3.還有直接修改文件的方式也是,因為會破壞系統(tǒng)原有的引用,可能導(dǎo)致全面崩壞的結(jié)局
4.不用懷疑,就是下面這個又臭又爛的長文章,它是錯誤的,真正的解決方法在最后
本熊雖然沒學(xué)過linux,但是 pip 這個命令,本熊知道在
/usr/bin
下一定存在一個同名可執(zhí)行文件,果然不出本熊所料的找到它啦-
用文本編輯器或者vim招呼這個pip文件,可以看見里面長這樣的
pip文件
有沒有很眼熟啊,錯誤提示中有一句和這里一模一樣
接下來各位查查看自己裝的pip的版本,各位還記得那個錯誤提示嗎?本章第一張圖里,那個pip 8.1.2就是指的安裝的pip版本
-
接下來施展替換大法,把1.5.4全部換成8.1.2,就是已經(jīng)自己安裝的版本,各位按自己的需求改,如下圖
替換版本號碼 -
最后在終端輸入 pip,發(fā)現(xiàn)可喜可賀的成功解決啦
pip命令執(zhí)行后
接下來就可以用pip安裝各種想要的東西啦
3.這才是正確的解決辦法
比起venv或virtualenv,本熊推薦使用Anaconda來一勞永逸的收拾了這些依賴上引發(fā)的問題
Linux中調(diào)用的庫極多,如果一個個都用apt-get或者pip來處理,不出問題的可能性很低,所以推薦Anaconda 來實現(xiàn)統(tǒng)一管理,這個可以為您提供科學(xué)運算,網(wǎng)站建立各種各樣的依賴,感謝討論區(qū)給出的提醒,差點誤人子弟,實在慚愧
主要首先是重建Linux系統(tǒng)的依賴,將其指向Anaconda,這個不用擔(dān)心,因為在安裝Anaconda時,一路yes,它就幫你處理好了,最后在按照安裝時的提示,添加export指令,再執(zhí)行source指令就可以了
總結(jié)
常有人說編程就是重復(fù)人為過程,連小學(xué)生都學(xué)的會。本熊不認可這個說法,你倒是找個小學(xué)生試試啊?
當(dāng)然這只是玩笑話,本熊覺得編程不只是重復(fù)再重復(fù),萬變不離其宗,本熊要是沒有之前Nutch實驗的基礎(chǔ),今日也想不出這一手。許許多多的小聰明能積攢成大智慧,但本熊還是希望將來的本熊可以在工資和女人心和吃上多多鉆研,享受生活才是人生的大智慧