如何在 ubuntu 22.04 中将 python3.10 替换为 python3.12

如何在 ubuntu 22.04 中将 python3.10 替换为 python3.12

我尝试从这里然后我想将默认的 python3 (3.10) 切换到新安装的版本并删除旧的 (3.10) 版本,但事实证明,我无法像我想象的那样轻松摆脱旧版本。无论我做什么,它都会带走所有系统文件。我曾经像这样弄乱了我的 Ubuntu 16.04,我不想再这样做了。
继续,在我使用命令将 python3 更改为运行 python3.12 后update-alternatives,apt 停止工作并出现很多错误。
当我更改 python3 版本时,除了以下错误之外还发生了此错误:

Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 29, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

每当我运行 apt 时都会发生此错误:

Setting up libpython3.12-testsuite (3.12.1-1+jammy1) ...
  File "/usr/lib/python3.12/test/test_future_stmt/badsyntax_future10.py", line 3
    from __future__ import print_function
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: from __future__ imports must occur at the beginning of the file
dpkg: error processing package libpython3.12-testsuite (--configure):
 installed libpython3.12-testsuite package post-installation script subprocess r
eturned error exit status 1
Setting up idle-python3.12 (3.12.1-1+jammy1) ...
Setting up python3.12-venv (3.12.1-1+jammy1) ...
dpkg: dependency problems prevent configuration of python3.12-full:
 python3.12-full depends on libpython3.12-testsuite; however:
  Package libpython3.12-testsuite is not configured yet.

dpkg: error processing package python3.12-full (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup erro
r from a previous failure.
                          Setting up python3.12-gdbm:amd64 (3.12.1-1+jammy1) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for man-db (2.10.2-1) ...
Errors were encountered while processing:
 libpython3.12-testsuite
 python3.12-full
E: Sub-process /usr/bin/dpkg returned an error code (1)

当我重新启动它时,终端根本打不开。我不得不使用++Ctrl来获取tty并更改python3版本。 AltF3
现在,我已经完全删除了 python3.12 并且正在等待回复。

答案1

第一的

切勿删除或替换 Ubuntu Linux 中安装的官方 Python 版本!您关注的文章作者犯了一个错误,您可以在安装 Python 3.12 后删除不需要的 Python 版本。您永远无法删除官方版本。对于 Ubuntu 22.04,它是 3.10。

就你的情况而言,我认为你还没有删除官方的 Python 3.10。你只是从程序中删除了它pythonpython3将其作为替代方案update-alternatives。你只需运行如下一组命令即可将 APT 恢复到工作状态:

  • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10
  • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10

或者类似的东西。我希望你能得到文档update-alternatives,并在备选方案列表中找到如何恢复 3.10 Python 版本的方法。

您仍然可以安装几个版本以及官方版本,并将它们全部添加到备选版本中。这将允许您的 IDE 和其他软件查看并选择要使用哪个版本。

第二

无法完全安装 Python 3.12 的问题是由于源存储库的作者错误地更新了 Python 包(3.12.1)-死蛇。他们需要根据核心政策重建它,这导致它无法安装(SyntaxError: from __future__ imports must occur at the beginning of the file)。除了以下两种方法外,我看不到其他方法:

  • 等待 repo 作者的解决方案
  • 通过官方沟通方式向他们提出这个问题

例如,可以向他们的主要问题追踪在 GitHub 上。修复软件包后,您只需运行即可sudo apt update && sudo apt upgrade获得最新的 Python 3.12.1 完整更新。

相关内容