Fix Python – Error after upgrading pip: cannot import name ‘main’


Asked By – g_p

Whenever I am trying to install any package using pip, I am getting this import error:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'

guru@guru-notebook:~$ cat `which pip3`

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':

It was working fine earlier, I am not sure why it is throwing this error.
I have searched about this error, but can’t find anything to fix it.

Please let me know if you need any further detail, I will update my question.

Now we will see solution for issue: Error after upgrading pip: cannot import name ‘main’


You must have inadvertently upgraded your system pip (probably through something like sudo pip install pip --upgrade)

pip 10.x adjusts where its internals are situated. The pip3 command you’re seeing is one provided by your package maintainer (presumably debian based here?) and is not a file managed by pip.

You can read more about this on pip’s issue tracker

You’ll probably want to not upgrade your system pip and instead use a virtualenv.

To recover the pip3 binary you’ll need to sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

If you want to continue in “unsupported territory” (upgrading a system package outside of the system package manager), you can probably get away with python3 -m pip ... instead of pip3.

This question is answered By – Anthony Sottile

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0