#11988 closed task (fixed)
Add a note to the Python pages regarding upgrading pip
Reported by: | Douglas R. Reno | Owned by: | blfs-book |
---|---|---|---|
Priority: | normal | Milestone: | 9.0 |
Component: | BOOK | Version: | SVN |
Severity: | normal | Keywords: | |
Cc: |
Description ¶
As of Python-2.7.16 and Python-3.7.3, an upgrade of pip (either pip2 or pip3) will overwrite the opposite set of programs. As an example, running 'pip2 --upgrade pip' will remove /usr/bin/pip3 and /usr/bin/pip3.7.
In order to fix this, the user has to run 'python3 -m pip install --force pip'. This is because pip is already listed as installed in /usr/lib/python3.7/site-packages/pip, but it isn't able to be run via standard means (you have to run python3 -m pip install <module_name>).
To overcome this, since we still have to support both python versions, I think a note should be added to both Python pages containing instructions for repairing upgrades of pip that cause problems such as this (18.0.3 ships with Python-2.7.16, and this was discovered while upgrading to 19.1 which adds the warning about Python deprecation).
TL;DR - add a note explaining to run 'python3 -m pip install --force pip' to Python3 (and a Python2-based note to Python2) in the event that pip is upgraded.
I was able to test this with
and everything seemed to work fine, but running
returned: You are using pip version 9.0.3, however version 19.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
'pip install --upgrade pip' did work but did delete pip3. I note that the only difference between pip2 and pip3 is the shbang line has python2 or python3 respectively.
As an aside, if I now run 'sudo python2 -m pip install --force pip', I get:
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
I'll need to think about wording a bit more. Suggestions welcome.