9

I upgraded to Ubuntu 20.04 from 19.10 and now I cannot use pip.

zeno:~$ pip --version

Command 'pip' not found, but there are 18 similar ones.

Python is installed:

zeno:~$ python3 --version
Python 3.8.2

but if I try to insatll pip, I get this:

    zeno:~/Desktop/tetris$ sudo apt install python3-pip
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    python3-pip is already the newest version (20.0.2-5ubuntu1).
    The following packages were automatically installed and are no longer required:
     dh-python elpa-async enchant gedit-plugin-zeitgeist gir1.2-mutter-5
     gnome-software-common libappstream-glib8 libapt-pkg5.90
     libboost-date-time1.67.0 libboost-iostreams1.67.0 libbrlapi0.6
     libcodec2-0.8.1 libcroco3 libdns-export1104 libdns1104 libdvdread4
     libegl1-mesa libenchant1c2a libept1.5.90 libevent-2.1-6 libexiv2-14
     libfprint0 libgeoip1 libgit2-27 libglvnd-core-dev libgnome-desktop-3-18
     libgspell-1-1 libgutenprint-common libgutenprint9 libgweather-3-15 libicu63
     libiptc0 libisc-export1100 libisc1100 libisc1105 libisl21 liblivemedia64
     liblouis17 liblwres161 libmicrodns0 libmozjs-60-0 libmutter-5-0 libmysofa0
     libnettle6 liboauth0 libperl5.28 libplymouth4 libpoppler90
     libpython3.7-minimal libqpdf21 libsnmp30 libusbmuxd4 libx11-xcb-dev
     libx265-176 libxcb-dri2-0-dev libxcb-dri3-dev libxcb-shape0-dev
     libxcb-sync-dev libxcb-xfixes0-dev libxshmfence-dev libzeitgeist-2.0-0
     perl-modules-5.28 printer-driver-gutenprint python-gobject-2
     python3-asn1crypto python3-pypdf2 python3.7-minimal ubuntu-system-service
     x11proto-composite-dev x11proto-fixes-dev
   Use 'sudo apt autoremove' to remove them.
   0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

I am lost. Thanks for any help

Update

I use venv to create virtual environments. When no venv is activated, I can use pip3:

zeno:~/Desktop/tetris$ pip3 -V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

but if I activate a venv, it does not work:

(.tetris) zeno:~/Desktop/tetris$ pip3
Traceback (most recent call last):
  File "/home/zeno/Desktop/tetris/.tetris/bin/pip3", line 6, in <module>
    from pip._internal import main
ModuleNotFoundError: No module named 'pip'

Thank you for your suggestions and continued help.

Update

I tried deleting the venv and making a new one, but it seems I need pip working in order to do that:

zeno:~/Desktop/tetris$ python3 -m venv .tetris

gives:

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/zeno/Desktop/tetris/.tetris/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
Eric Chancellor
  • 101
  • 1
  • 5

6 Answers6

7

Sometimes after OS upgrade you need to reinstall packages. Try:

sudo apt install --reinstall python3-pip
ofirule
  • 4,233
  • 2
  • 26
  • 40
  • 1
    Thanks for answering. This did not work, but I have updated my question. – Eric Chancellor May 09 '20 at 16:52
  • @EricChancellor I am also facing the more or less same problems/errors and stuck in virtualenvwrapper issue. Just delete the old .virtualenvwrapper directory and hit `sudo apt install --reinstall python3-pip` – Abdul Basit Feb 02 '21 at 07:43
0

I had to purge python3-venv and reinstall it:

zeno:~$ sudo apt purge python3-venv

and then

zeno:~$ sudo apt install python3-venv

Thanks all

Eric Chancellor
  • 101
  • 1
  • 5
0

The solution that worked best for me was given by dobairoland over on the esp-idf github (issue 4474) as found in the Espressif Docs:

sudo apt-get install python3 python3-pip python3-setuptools

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Alternative (1): At first I and was able to work around this with an alias for a 3rd party bash install script that was hardcoded with pip (none of the installs / re-installs previously mentioned worked for me) - so this could be an option, too:

sudo apt-get install python3-pip
alias pip="pip3"

this (admittedly less-than-graceful option) might be helpful in scripts:

if [ "$(cat /etc/os-release | grep VERSION_ID)" == 'VERSION_ID="20.04"' ]; then
 alias pip="pip3"
else 
  echo "no pip alias"
fi

Alternative (2) There's also this hack that technically worked for me, but is probably not a good idea to force deprecated software onto a system:

wget https://bootstrap.pypa.io/get-pip.py
sudo python2.7 get-pip.py
gojimmypi
  • 426
  • 4
  • 7
0

Easiest way I found was just delete the virtual environment folder, recreate it and re-install the dependencies with pip which was now available again :)

Doug
  • 665
  • 2
  • 8
  • 22
0

I had the same problem on ubuntu 20. i fixed it with this pip3 install --upgrade pip

0

I was unable to use pip3 or pip in a pre-existing virtual environment after upgrading from Ubuntu 18.04 to 20.04.

And to add cream on top, the project created in that virtual environment (created under 18.04) stopped working.

This is what I did to fix (got steps 1-3 from here).

  1. sudo add-apt-repository ppa:deadsnakes/ppa # allows multiple versions of python
  2. sudo apt-get update
  3. sudo apt-get install python3.6
  4. change directory into into the virtual environment bin directory (where you call activate script)
  5. rm python3 # (was linked to python3.8)
  6. ln -s /usr/bin/python3.6 python3 # link python3 to python 3.6

Now, the project runs fine, as does pip & pip3

MIkee
  • 904
  • 8
  • 12