Here is the specific problem:

The following packages have unmet dependencies:
 libpython3.10-stdlib : Depends: libpython3.10-minimal (= 3.10.4-1+focal1) but it is not going to be installed
 python3.10-minimal : Depends: libpython3.10-minimal (= 3.10.4-1+focal2) but it is not going to be installed
                      Recommends: python3.10 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Which package should I purge or reinstall? The system doesn't allow to do neither autoremove, fix broken, dist-upgrade?

Kubuntu 20.04 LTS

  • How did you install python3.10 in Ubuntu 20.04? Apr 14, 2022 at 10:54
  • I also run anaconda on system Apr 14, 2022 at 11:01
  • Anaconda is not a systemwide installation. How did you install python3.10? Apr 14, 2022 at 11:10
  • @ArchismanPanigrahi current python3 version is Python 3.8.12...after apt-get dist-upgrade the dependencies broke. I use aptitude for every package Apr 14, 2022 at 11:13
  • 2
    Your question is showing errors about python3.10. How did you install that? Are you using the deadsnakes PPA? Apr 14, 2022 at 11:25

3 Answers 3


Edit: To summarize, I purged the packages and installed python3.10 as a new package. According to others who followed this, you do not need to remove and add the ppa as I did. I am removing that from the answer. It has also been suggested that merely forcing the install with sudo apt install -yf has worked when this issue came up in past versions. I can't verify because I did the following instead:

I had installed Python 3.10 using deadsnakes.

The issue and solution are described here:
libpython3.10-minimal and libpython3.10-stdlib fail to install #207

I ran the suggested command (explained in more detail at the end of this answer):
sudo apt --fix-missing purge $(dpkg -l | grep 'python3\.1[01]' | awk '{print $2}')

This prompted with:

The following packages will be REMOVED: idle-python3.10* libpython3.10-minimal* libpython3.10-stdlib*
libpython3.10-testsuite* python3.10* python3.10-distutils*
python3.10-examples* python3.10-full* python3.10-gdbm* python3.10-lib2to3* python3.10-minimal* python3.10-tk* python3.10-venv*

Note that there may be other packages removed with this command.

As suggested, I ran:
sudo apt --fix-broken install

There wasn't anything to fix because it had been purged.

Next I went ahead and upgraded unrelated packages before continuing:
sudo apt upgrade

At this point, running python --version showed it had rolled back to Python 3.8.10. I want Python 3.10 again so I ran:
sudo apt install python3.10

This prompted with:

The following additional packages will be installed:
libpython3.10-minimal libpython3.10-stdlib python3.10-minimal Suggested packages: python3.10-venv The following NEW packages will be installed: libpython3.10-minimal libpython3.10-stdlib python3.10 python3.10-minimal

The new install was a success!

Explanation For Cautious Beginners

The command used for purging python3.10 packages was:
sudo apt --fix-missing purge $(dpkg -l | grep 'python3\.1[01]' | awk '{print $2}')

The description of --fix-missing is found in man -apt-get:

Ignore missing packages; if packages cannot be retrieved or fail the integrity check after retrieval (corrupted package files), hold back those packages and handle the result. Use of this option together with -f may produce an error in some situations. If a package is selected for installation (particularly if it is mentioned on the command line) and it could not be downloaded then it will be silently held back.


purge is identical to remove except that packages are removed and purged (any configuration files are deleted too).

For the package names, a command substitution is used.

dpkg -l package-name-pattern...:

List packages matching given pattern.

Because no pattern was given for dpkg, a list of all installed packages is returned. In lieu of a pattern, the list is piped into grep so we can used the pattern 'python3\.1[01]' to narrow the list down to installed python3.10 packages. These results are then piped into awk '{print $2}'.

awk '{print $2}':

To put it simply, this awk a pattern scanning command. Here it returns only the package name from each line in the list. To better understand, run these commands together and observe the output:

dpkg -l | grep 'python3\.1[01]' | awk '{print $2}'

This should output a list of all of installed python3.10 package names, such as:


The end result is the same as if you had entered all python3.10 packages yourself:

sudo apt --fix-missing purge libpython3.10-minimal:amd64 libpython3.10-stdlib:amd64 python3.10 python3.10-distutils python3.10-lib2to3 python3.10-minimal python3.10-venv

Now the system should be ready for a new install of python3.10.

  • 4
    Don't do alias python='python3.10'. The whole package management system might break. See askubuntu.com/q/1374341/124466 Either use a virtual environment, or call it with python3.10. Apr 15, 2022 at 6:55
  • I have this issue, so I tried forcing the install, did not work. Apr 15, 2022 at 14:18
  • 1
    I then tried the suggested purge, and reinstall and that worked, thanks. And the link to the issue was much appreciated, oh and i didn't remove and put back the deadsnakes ppa Apr 15, 2022 at 14:25
  • 1
    After reinstall of 3.10.. if you have 2 versions of python installations (eg. 3.8 and 3.10), you have to link the newly installed 3.10 to /usr/bin/python3 using the below command. sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 Apr 27, 2022 at 6:46
  • 1
    Warning - Copy pasting this command as it is broke my system due to messed up dependencies. Use proper commands applicable to you after understanding what you are doing.
    – workwise
    Feb 20 at 10:58

This is how I fixed it for me:

$ sudo dpkg --force-depends --purge libpython3.10-stdlib

You will get a warning - ignore. Next:

$ sudo apt --fix-broken install


$ sudo apt update

The following worked for me:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libpython3.10-*

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .