[Bug 1825655] Re: do-release-upgrade fails with "Your python3 install is corrupted" if /usr/bin/python points to /etc/alternatives/python

Ulli Horlacher 1825655 at bugs.launchpad.net
Tue Jan 20 23:47:18 UTC 2026


The same error (bug?) appears again in Ubuntu 22.04:

# do-release-upgrade

Can not upgrade                                                                                                                                                                                
                                                                                                                                                                                               
Your python3 install is corrupted. Please fix the '/usr/bin/python3'                                                                                                                           
symlink.                                                                                                                                                                                       
=== Command detached from window (Tue Jan 20 14:06:37 2026) ===                                                                                                                                


I have:
                                                                                                                                                                                                                                                                                                                                                                                 root at obertux:/usr/bin# ll python*                                                                                                                                                                  lrwxrwxrwx root root         - 2021-10-11 14:34:54 python -> python3                                                                                                                           lrwxrwxrwx root root         - 2021-07-28 13:17:06 python2 -> python2.7                                                                                                                        -rwxr-xr-x root root 3,592,536 2024-12-09 19:47:23 python2.7                                                                                                                                   
lrwxrwxrwx root root         - 2026-01-20 14:06:18 python3 -> python3.10                                                                                                                       
-rwxr-xr-x root root       960 2023-01-25 09:29:04 python3-futurize                                                                                                                            
-rwxr-xr-x root root       964 2023-01-25 09:29:04 python3-pasteurize                                                                                                                          
-rwxr-xr-x root root 5,937,672 2026-01-08 07:52:19 python3.10                                                                                                                                  


I run "apt reinstall python3.10", but the error remains.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/1825655

Title:
  do-release-upgrade fails with "Your python3 install is corrupted" if
  /usr/bin/python points to /etc/alternatives/python

Status in ubuntu-release-upgrader package in Ubuntu:
  Fix Released
Status in ubuntu-release-upgrader source package in Eoan:
  Fix Released

Bug description:
  do-release-upgrade from 18.04 to 18.10 fails (likewise, when I
  upgraded with a workaround the same happened for 18.10 -> 19.04):

  "
  Reading cache

  Checking package manager

  Can not upgrade

  Your python3 install is corrupted. Please fix the '/usr/bin/python3'
  symlink.
  === Command terminated with exit status 1 (Sat Apr 20 17:19:49 2019) ===
  "

  There is nothing wrong with /usr/bin/python3

  ➜  ~ ls -al /usr/bin/python3
  lrwxrwxrwx 1 root root 9 окт 25 14:11 /usr/bin/python3 -> python3.6

  I also have python2 installed for which Debian alternatives are
  configured which causes the problem as far as I can see:

  ➜  ~ update-alternatives --display python
  python - auto mode
    link best version is /usr/bin/python2.7
    link currently points to /usr/bin/python2.7
    link python is /usr/bin/python
  /usr/bin/python2.7 - priority 100

  https://git.launchpad.net/ubuntu/+source/ubuntu-release-
  upgrader/tree/DistUpgrade/DistUpgradeController.py?h=ubuntu/bionic-
  updates#n361

  (Pdb) l
   11  	        debian_defaults = '/usr/share/%s/debian_defaults' % dirname
   12  	        if os.path.exists(debian_defaults):
   13  	            config = SafeConfigParser()
   14  	            with open(debian_defaults) as f:
   15  	                config.readfp(f)
   16  ->	            try:
   17  	                expected_default = config.get('DEFAULT', 'default-version')
   18  	            except NoOptionError:
   19  	                logging.debug("no default version for %s found in '%s'" %
   20  	                              (binary, config))
   21  	                return False
  (Pdb) n
  > <ipython-input-13-93c4105e7796>(17)_pythonSymlinkCheck()
  -> expected_default = config.get('DEFAULT', 'default-version')
  (Pdb) n
  > <ipython-input-13-93c4105e7796>(22)_pythonSymlinkCheck()
  -> try:
  (Pdb) expected_default
  'python2.7'

  > <ipython-input-13-93c4105e7796>(23)_pythonSymlinkCheck()
  -> fs_default_version = os.readlink('/usr/bin/%s' % binary)
  (Pdb) n
  > <ipython-input-13-93c4105e7796>(27)_pythonSymlinkCheck()
  -> if not fs_default_version in (expected_default, os.path.join('/usr/bin', expected_default))                     and not (binary == 'python' and fs_default_version in ('python2', '/usr/bin/python2')):
  (Pdb) fs_default_version
  '/etc/alternatives/python'
  (Pdb) os.path.join('/usr/bin', expected_default)
  '/usr/bin/python2.7'

  (Pdb) not fs_default_version in (expected_default, os.path.join('/usr/bin', expected_default))
  True

  (Pdb) print("%s symlink points to: '%s', but expected is '%s' or '%s'" % (binary, fs_default_version, expected_default, os.path.join('/usr/bin', expected_default)))
  python symlink points to: '/etc/alternatives/python', but expected is 'python2.7' or '/usr/bin/python2.7'

  A workaround is:

  sudo rm /usr/bin/python
  sudo ln -s /usr/bin/python2.7 /usr/bin/python
  do-release-upgrade

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1825655/+subscriptions




More information about the foundations-bugs mailing list