Fixing an assertion error on pip list

Thursday, Mar 5, 2015 15:35 · 154 words · 1 minute read

The Problem

Getting the following assertion error when trying to list the Python packages:

pip list

...
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 134, in main
    status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 80, in run
    self.run_listing(options)
File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 127, in run_listing
    self.output_package_listing(installed_packages)
File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 136, in output_package_listing
    if dist_is_editable(dist):
File "/usr/lib/python2.7/dist-packages/pip/util.py", line 347, in dist_is_editable
    req = FrozenRequirement.from_dist(dist, [])
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 194, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

means that either pip is outdated on the host machine or the distribute package.

The Solution

Upgrading pip

pip can be upgraded using the following set of commands:

# download get-pip.py via curl
curl -O https://bootstrap.pypa.io/get-pip.py
or
# download get-pip.py via wget
wget https://bootstrap.pypa.io/get-pip.py

# installing pip
sudo python get-pip.py

or

pip install -U pip

More information about pip installation and upgrade can be found here.

Upgrading the distribute package

pip install --upgrade distribute
comments powered by Disqus