Search code examples
python-3.xoperating-systemupgradepython-venvlinux-distro

python 3.7 venv broken after upgrade to Ubuntu 20.04


I've just upgraded to Ubuntu 20.04. I was working with a python 3.7 project using Django inside a virtual environment, so I was confident even with the upgraded distro (which involved the installation of python 3.8) my venv would still worked. Unfortunately, that's not the case: when I activate my venv, the interpreter of python is still the 3.8 version, and nothing works. python 3.7 is completely missing. What can I do to restore my project?


Solution

  • Same problem for me. This is my solution if you do not want to upgrade everything (perhaps not all package are upgradable).

    1. Install python 3.7 which is gone with upgrade to ubuntu 20

      sudo add-apt-repository ppa:deadsnakes/ppa
      sudo apt-get update
      sudo apt-get install python3.7
      
    2. in your virtualenv dir (e.g env/) edit last line in pyenv.cfg

      version = 3.7
      
    3. set back soft link of python3 in env/bin linking back to 3.7

      ln -s  /usr/bin/python3.7 python3
      

    You may need to delete old symlik before creating new one

    Now, should work: it does for me!