Search code examples
pythonpipubuntu-16.04python-3.8

How to fix "module 'platform' has no attribute 'linux_distribution'" when installing new packages with Python3.8?


I had Python versions of 2.7 and 3.5. I wanted the install a newer version of Python which is python 3.8. I am using Ubuntu 16.04 and I can not just uninstall Python 3.5 due to the dependencies. So in order to run my scripts, I use python3.8 app.py. No problem so far. But when I want to install new packages via pip:

python3.8 -m pip install pylint

It throws an error:

AttributeError: module 'platform' has no attribute 'linux_distribution'

So far, I tried:

sudo update-alternatives --config python3

and chose python3.8 and run command by starting with python3 but no luck.

Then:

sudo ln -sf /usr/bin/python3.5 /usr/bin/python3

I also tried running the command by starting with python3 but it did not work either.

How can I fix it so that I can install new packages to my new version of Python?


Solution

  • It looks like at least on my Ubuntu 16.04, pip is shared for all Python versions in /usr/lib/python3/dist-packages/pip.

    This is what I did to get it working again:

    • sudo apt remove python3-pip
    • sudo python3.8 -m easy_install pip

    You might want to install the python 3.5 version of pip again with sudo python3.5 -m easy_install pip.