2

I'm trying to upgrade from 18.10 to 19.04 but getting the error:

Your python3 install is corrupted. Please fix the '/usr/bin/python3' symlink.

Note that the /usr/bin/python3 symlink points to the /usr/bin/python3.6 binary.

I'm aware of prior versions having to symlink back to original python if it was upgraded, but the default python of 18.10 IS 3.6, and it was not changed. Why is this script failing?

Is the upgrade script relying on python 2.7 still? What is the process to fix this and is there a way to do it without "downgrading" python away from it's default version?

3
  • But my symlink is not broken: lrwxrwxrwx 1 root root 9 Oct 25 2018 /usr/bin/python3 -> python3.6
    – Harel
    May 17 '19 at 15:38
  • 1
    Fair enough. My previous comment cheerfully withdrawn. Try reinstalling the python3-minimal package, since that's what provides the relevant symlink.
    – user535733
    May 17 '19 at 20:03
  • unfortunately reinstalling did not help. I usually know what I'm doing, and rarely have any issues but this one has me stumped (mostly because i refuse to downgrade my local python)
    – Harel
    May 17 '19 at 21:24
2

What fixed this same issue for me was making /usr/bin/python point to 2.7 (instead of any python 3 version, which is what I had before). I assume the error was cryptic because what it thought was python2 was actually python3

sudo ln -sf /usr/bin/python2.7 /usr/bin/python
2
  • Did you have to later revert it back to 3? I just find it odd the upgrade wants python 2 while the system default is 3.x for a while.
    – Harel
    Aug 4 '19 at 12:17
  • 1
    I thought by default the system has 'python' link to python2.7 and 'python3' link to python3.6. I don't use python2 anymore so I redid the symlink to point to python3 instead, which confused the updater. Now in 19.04 the default seems to be python3.7 but abandoning support for python2 is a somewhat recent decision so thats probably what made them change the default. Aug 4 '19 at 20:19
2

I had the same problem when upgrading from 16.04 to 18.04 (in WSL).

This seems to be a bug in the installer. See do-release-upgrade fails with "Your python3 install is corrupted" if /usr/bin/python points to /etc/alternatives/python

The workaround is:

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
sudo do-release-upgrade
1
  • I have tried that actually. It didn't work for me despite a lot of common sense suggests it should have. I have resigned to waiting until 20.04 comes out in April and do a clean install.
    – Harel
    Mar 30 '20 at 0:17
1

I could'nt comment, so i would put my suggestion here,

Try,

sudo rm /usr/bin/python3

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

Or,

As a quick fix,did you try to create sym links using update-alternatives for python3

sudo update-alternatives --install /usr/bin/python3.6 python3 /usr/bin/python3 2

and for managing the links created

sudo update-alternatives --config python3

Read more on this

1
  • I'm afraid none of this helped. I've also managed to remove and reinstall python3 but that didn't help either. As for 'atlernatives' - the update-alternatives itself says there are no alternatives to install for python. I never changed the default. It looks like a fresh install is the only way forward for me... :(
    – Harel
    May 24 '19 at 16:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.