skip to Main Content

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']

6

Answers


  1. Chosen as BEST ANSWER

    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


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

    sudo apt install --reinstall python3-pip
    
    Login or Signup to reply.
  3. 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
    
    Login or Signup to reply.
  4. 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 🙂

    Login or Signup to reply.
  5. I had the same problem on ubuntu 20. i fixed it with this pip3 install --upgrade pip

    Login or Signup to reply.
  6. 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

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search