22

I am new to Linux and Ubuntu.

I was trying to upgrade pip but ran into this...

$ sudo pip install --upgrade pip
Cannot fetch index base URL https://pypi.python.org/simple/
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.0-py2.py3-none-any.whl#md5=b108384a762825ec20345bb9b5b7209f
  Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
  Found existing installation: pip 1.5.4
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pip
Cleaning up...

Any idea why?

4
  • 2
    try apt i.e. sudo apt-get install python-pip to upgrade pip
    – heemayl
    Jul 5 '15 at 23:15
  • hmmm... says its the most up-to-date version... is this because apt-get and pip get their packages form different sources? (i.e. would that be a difference between apt-get and pypi?) 'python-pip is already the newest version.' Jul 6 '15 at 1:30
  • that means it is up to date...
    – Tim
    Jul 6 '15 at 10:32
  • 1
    except running: pip list --outdated pip returns the following: pip (Current: 1.5.4 Latest: 7.1.0) Could not find any downloads that satisfy the requirement python-apt Some externally hosted files were ignored (use --allow-external python-apt to allow). Jul 7 '15 at 4:13

11 Answers 11

3

Edit:

pip install -U pip

or

pip install --upgrade pip

-U is shorthand for --upgrade.


Old answer:

The apt system and PyPI uses two different mechanisms.

In Ubuntu's repositories many modules of python are available as packages, but they are not much in numbers as compared to PyPI (The Python Package Index). To remain consistent about upgrading a package you need to consider the method you have used initially used to install it.

So if you have installed a package (module) from PyPI using pip then you should used pip to upgrade the package from PyPI (including pip itself). On the other hand if you have used apt system to install a module (as package) you need to use apt to upgrade that again.

In a nutshell, run the following to upgrade python-pip to the latest version :

sudo apt-get install python-pip
4
  • 5
    This doesn't answer the question. python-pip doesn't upgrade pip, it only installs a very old version of pip in such as way that pip cannot upgrade itself.
    – Cerin
    Feb 7 '17 at 14:18
  • @Cerin Did you read the answer thoroughly? python-pip is the package from the (official) Universe repository whereas easy_install installs from PyPI. As always the official repositories do not not contain the latest package to keep the system stable (and dependencies resolved).
    – heemayl
    Feb 7 '17 at 16:31
  • 7
    @heemayl, OP asked how to upgrade pip and you effectively told them to install an old version of pip. The correct solution is to uninstall python-pip and install from PyPI. Installing python-pip does not upgrade pip.
    – Cerin
    Feb 7 '17 at 21:29
  • I don't understand this answer. The OP says $ sudo pip install --upgrade pip didn't work. Answer: pip install --upgrade pip
    – cowlinator
    Jan 23 '20 at 0:46
23

Try install it with easy_install:

easy_install -U pip
6
  • 1
    Not sure if this answer is still valid? This post on Stack Overflow asked on "Why use pip over easy_install?", in which one of the answers noted that: "The only good reason that I know of to use easy_install in 2015 is the special case of using Apple's pre-installed Python versions with OS X 10.5-10.8."
    – user37165
    Dec 9 '15 at 8:53
  • 1
    Focus on question, the question is 'Unable to upgrade pip', and I suggest way upgrade via easy_install, it work in Dec 2015, ok?
    – NamPNQ
    Dec 9 '15 at 12:16
  • To downvoters, do explain why this answer was downvoted earlier? I managed to find a recent comment under this post, which is quoted here: " easy_install -U pip from ByteCommander suggestion worked for me. – Tampa Jun 1 at 12:23". The easy_install method reportedly works for some users.
    – user37165
    Dec 10 '15 at 12:35
  • 1
    This worked for me (with sudo). Previously, sudo apt-get install python-pip was giving me python-pip is already the newest version (8.1.1-2ubuntu0.4) whereas 9.0.1 was available, but couldn't be installed by pip install --upgrade pip (which left the version unchanged at 8.1.1). After easy_install the version was upgraded.
    – Kurt Peek
    Jan 12 '17 at 10:33
  • Although this works, this does replace system-managed files with the newer pip version. A re-install of the python-pip package would replace the files again. Other code relying on the package version being present and correct could break (small but non-zero chance), and easy_install could add extra files that are not removed when in future upgrading python-pip to a newer version that may interfere and break things. Jan 16 '17 at 11:29
7

I had the same issue for a long time and figured out the solution today. When you install pip via python-pip, you download from the deprecated Linux server. You should download from the python server. To solve this, do the following:

sudo apt-get purge pip
sudo apt-get install python-setuptools
sudo apt-get install python-dev 
sudo easy_install pip 
pip install pip --upgrade 
4
  • 1
    thanks for explaining the source of the problem. i had to figure this out myself before scrolling down and seeing this answer. Oct 1 '18 at 18:06
  • These commands (2-3) are wrong. Nov 29 '18 at 9:29
  • @JoelGMathew need just word install after apt-get Nov 29 '18 at 16:03
  • After installing python-setuptools and python-dev, I still get easy_install: command not found. Is there something I need to do for easy_install to be accessible from the terminal?
    – cowlinator
    Jan 23 '20 at 0:52
4

This is caused by a conflict between a version of pip provided by a system package, like python-pip, and a version provided by PyPI through pip itself.

To fix this, simply remove python-pip with sudo apt-get purge python-pip.

If you had already used the old version of pip to install a newer version, this should leave the updated version in /usr/local/bin. If not, you can install the most recent version of Pip from scratch with:

Pip for Python 2.7:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python2.7

Pip for Python 3.x:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python3
1
  • This one works for me, It turns out that I make mistake by removing python 2.7, then the python packages become missing, and I have to reinstall pip for python 3 Oct 26 '20 at 6:38
2

Actually, you can edit your 'pip' script:

from root:

$ which pip  # -> prints 'pip' location

$ nano `which pip` # -> open with your editor, note the backticks!

replace the __requires__ with your latests pip version like:

__requires__ = 'pip==7.1.2'

than edit line with 'load_entry_point' call to:

load_entry_point(__requires__, 'console_scripts', 'pip')()

and:

$pip -V
pip 7.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)

also, i have to update my setuptools package, to install some packages.

1

Use this link to upgrade. Basically:

  1. Download the file get-pip.py
  2. run python get-pip.py
1

If python-pip installed from apt repositories with sudo user - run sudo -H install --upgrade pip , same for installing PIP modules .

Here the output from my console on 16.04

..... Successfully installed requests
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
:~$ pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 672kB/s 
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
:~$ sudo -H pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 692kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-9.0.1
:~$ 

also see What is the -H flag for pip? https://stackoverflow.com/questions/28619686/what-is-the-h-flag-for-pip

1
  • I had this problem on a Lubuntu 16.04 system and it finally worked!
    – bomben
    Mar 25 '20 at 21:14
1

Try running sudo -H pip3 install --upgrade pip to upgrade your pip3 (for Python 3). Conversely, you can do sudo -H pip2 install --upgrade pip to upgrade pip as well (for Python 2).

1

I ran into this problem when working on a remote machine I was ssh'd into. I had just installed python 3, and was unable to get pip to upgrade, even though I'd attempted to upgrade via both pip AND apt-get.

Logging out of the remote server and logging back in fixed it.

0

I'm only a beginner so I'm not sure but probably is something related to the differences between python 2 and 3. I think that is not necessary to be a superuser but you can do it easily using pip3 instead of pip also to upgrade pip : pip3 install --upgrade pip

0

I got similar problem on upgrading pip 9.0.3 to 18.0 version.

So on upgrading first uninstallation happens and then the latest version is installed. However, I found that on your first attempt it says "successfully uninstalled pip-9.0.3"

On subsequent attempts, we get the same error. This is because the pip-9.0.3 is uninstalled. As with the accepted answer, I installed pip as an admin in my windows 10 system, got thee latest version and then all was well.

Hope this helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.