17

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?

  • 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.' – Spencer Lee 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). – Spencer Lee Jul 7 '15 at 4:13

11 Answers 11

3

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
  • i think i understand. thank you. – Spencer Lee Jul 7 '15 at 4:38
  • 4
    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
  • 5
    @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
22

Try install it with easy_install:

easy_install -U pip
  • 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." – clearkimura 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. – clearkimura 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. – Martijn Pieters Jan 16 '17 at 11:29
6

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 python-setuptools
sudo apt-get python-dev 
sudo easy_install pip 
pip install pip --upgrade 
  • 1
    thanks for explaining the source of the problem. i had to figure this out myself before scrolling down and seeing this answer. – G Gordon Worley III Oct 1 '18 at 18:06
  • These commands (2-3) are wrong. – Joel G Mathew Nov 29 '18 at 9:29
  • @JoelGMathew need just word install after apt-get – nurgasemetey Nov 29 '18 at 16:03
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.

2

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:

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

Use this link to upgrade. Basically:

  1. Download the file get-pip.py
  2. run python get-pip.py
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).

0

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

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 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 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 acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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