2014-12-30 22 views
38

我的控制檯:PIP爲什麼在pip凍結時引發AssertionError?

desarrollador @ desarrollador-HP-14筆記本PC1:〜$ PIP凍結
例外:
回溯(最近通話最後一個):
文件「/ usr/lib目錄/ python2.7/dist-packages/pip/basecommand.py「,第126行,主要爲
self.run(options,args)
文件」/usr/lib/python2.7/dist-packages/pip/commands /freeze.py「,第68行,正在運行
req = pip.FrozenRequirement.from_dist(dist,dependency_links,find_tags = find_tags)
聲明len(specs)== 1和specs [0] [0] = 0的文件「/usr/lib/python2.7/dist-packages/pip/ init .py」,行156,from_dist
= = '=='
的AssertionError

我安裝龍捲風包和發生這種情況,因爲。我該如何解決它?

+0

你提供的信息非常少。你使用的是什麼版本的點子?您是否看過SO中的各種線程,並提供相同或類似的錯誤消息?它可能與'distribute'有關。你碰巧還安裝了'distribute'版本嗎? – cel

+1

在SO中沒有像這樣的線程。我正在使用最新版本。 –

+0

我也收到了這個。我正在使用pip版本1.5.4。 'pip install'工作得很好。 –

回答

18

原因:蟒蛇-PIP封裝在Ubuntu 12.04是嚴重過時和有一些錯誤與某些包名(我可以看到),不能正確解析。

解決方案:通過easy_install安裝更新版本的pip。

+1

我剛剛意識到我的$ PATH有幾個版本的點子!路徑上的第一個點是舊版本。用pip -V運行每個點來檢查哪一個是最新的(今天:7.1.2)並刪除舊的。 –

+0

最後刪除/刪除/清除所有'我的點,然後安裝最新的。我想這是因爲有5種不同的方式來安裝pip,而每一種方式都會有所不同。 –

8

我在this link找到了解決方案。

pip install setuptools==7.0

+0

它沒有工作 –

+1

嘗試運行'pip list'。如果您的問題與我的問題類似,那麼pip將列出大部分包,然後在引發問題的包上拋出錯誤。然後看看'/ usr/local/lib/python2.7/dist-packages /'(或者你的軟件包的安裝位置),看看你能否按照字母順序找出下一個軟件包。也許這會爲你提供解決問題所需的信息? –

+0

我可以設法升級點子! :D我使用的是pip 1.0(與Ubuntu 12.04一起提供) –

15

您的點可能已過時。即使在Ubuntu 14.04 LTS中,使用apt-get install python-pip安裝的pip版本也是1.5.4。嘗試手動更新pip,並且可能再次使用新軟件包。

pip --version # 1.5.4 
curl -O https://bootstrap.pypa.io/get-pip.py 
sudo python get-pip.py 
pip --version # 6.0.8 
hash -r # reset bash cache 

https://pip.pypa.io/en/latest/installing.html

+0

這對我有用Ubuntu 14.04 – learn2day

36

這爲我工作(運行Ubuntu,無論是12和14 LTS):

pip install -U setuptools 
pip install -U pip 

升級,以便最新版本的setuptools,才能夠升級到最新版本的pip,並升級到最新版本的pip以獲得修復AssertException錯誤的版本。

+1

有時你添加'sudo'如果root已經安裝了'pip' –

3

首先,我跑了馬丁·莫漢的解決方案:

/usr/local/bin/pip uninstall pip 
apt-get remove python-pip 
apt-get install python-pip 

然後,boredcoding真實最終解決了這一問題,這兩種解決方案都接近螺紋底部發現:I screwed up the system version of Python Pip on Ubuntu 12.10

$apt-get install python-pip 
$which pip 
/usr/bin/pip 

$pip install -U pip 
$which pip 
/usr/bin/pip 

$hash -r 
$which pip 
/usr/local/bin/pip 

後面這兩種修復邏輯在線程中(上面鏈接)說明,所以我不會在這裏進入每個線程。

4

問題是由於舊版本pip正在安裝。 運行以下命令來安裝的pip新版本:

sudo easy_install -U pip. 
2

這可能是有點晚了,但有一件事我發現了有(取決於你裝什麼)

安裝了2個或三個版本PIP的

pip - 已安裝的操作系統版本,凍結不起作用,可能已過期 pip2 - 已安裝的新版本,但通過pip等升級pip pip3 - 如果您同時安裝了python3和python2 。

你可以改變,這點子獲取$ PATH中使用,或做我所做的:

PIP2凍結(它在ubuntu14工作,如果你有蟒蛇多個選項)