I installed pip using get-pip.py, but the following error happened after pip freeze gets executed:
Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist assert len(specs) == 1 and specs[0][0] == '==' AssertionError Storing debug log for failure in /home/simon/.pip/pip.logI've checked that pip version 1.7 is the latest one. However, updating pip via pip install -U pip did not update my pip. How can I fix this problem?
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7) simon@simon-OptiPlex-780:~/Nightybuild$ pip --version pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7) simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip Downloading/unpacking pip Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded Installing collected packages: pip Successfully installed pip Cleaning up... simon@simon-OptiPlex-780:~/Nightybuild$ pip --version pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7) 1 10 Answers
I usually just run the following commands to upgrade both pip2 (=pip by default) and pip3:
sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pipYou must make sure that you upgrade the version (for Python 2 or 3), which you want to react on the command pip without number, last.
Also please note that this keeps the old packaged versions installed through apt-get or any other package manager, but adds new versions which have nothing to do with the system packages. The pip-installed packages will be preferred, but you should not remove the apt-get-installed ones either, because the package manager can't know that any pip version is installed otherwise.
I think the
pip install --upgrade pipcommand does not work properly anymore. The correct command should be:
for Python 3:
python3 -m pip install --upgrade pipfor Python 2:
python2 -m pip install --upgrade pip
P.S. If you want to make sure your other Python packages are also up to date, follow the instructions here.
5Go to the website .
Copy (or download) the source link (ends in .tar.gz).
For 9.0.1, the link is .
Installation procedure:
wget Link goes heretar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py installThe version should be changed to the latest version and the link can be updated with the latest version's link.
This should work.
2I think it's worth mentioning that what I'm explaining below is if you expect pip to point to Python 2 and pip3 to point to Python 3. The reason I mention this is because when you upgrade pip3, it also takes over the pip command as well. This is a somewhat strange convention because by default python points to 2.x and python3 points to 3.x. That being said...
If you want to have the latest versions of python 2.x pip and python 3.x pip3 coexist on the same machine (using pip for 2.x and pip3 for 3.x), you need to do the following:
sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2The other answers provided by others fail to mention that after running sudo pip3 install pip --upgrade you'll end up with the pip command installing packages in the python 3.x directories instead of the python 2.x directories.
Part of me thinks that we should just leave pip be after upgrading pip3 (even if it pip -> pip3), but there's a danger there that people already have an expectation that pip functions like python - both pointing to python 2.x. In other words, people are probably trained to use pip/python for python 2.x just like they are trained to use pip3/python3 for python 3.x.
4pip install -U pip
The shortest I know.
1Update the pip version using
sudo apt-get update
sudo apt install python3-pip If pip install -U pip is used then pip first uninstalls itself and may hang up in the middle of the whole process. So it is safe to use:
python3 -m pip install -U pip for Python 3
python -m pip install -U pip for Python 2.7 (or any Python version if run from inside venv)
I face the same error and resolved it with the following commands.
sudo su root
apt-get purge -y python-pip
wget
python ./get-pip.py
apt-get install python-pipImportError: No module named packaging.version
1Centos: First you need to install latest version of python (currently: python 3.8) link
[root@centos7 ~]# yum install gcc openssl-devel bzip2-devel libffi-devel -y
[root@centos7 ~]# curl -O
[root@centos7 ~]# tar -xzf Python-3.8.1.tgz
[root@centos7 ~]# cd Python-3.8.1/
[root@centos7 Python-3.8.1]# ./configure --enable-optimizations
[root@centos7 Python-3.8.1]# make altinstallNow python3.8 is installed. Now u can install latest pip version (currently 21.1)
# python3.8 -m pip install --upgrade pip
# pip3.8 --version
# OUTPUT ==> pip 21.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)For ubuntu - use apt-get instead of yum
Below command is to upgrade with the latest available pip version in ubuntu-
# python -m pip install --upgrade pipFor specific pip version i.e. 22.0.4 try below command-
# pip install pip==22.0.4
# pip --version
pip 22.0.4 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)This way we can install any other available pip version.