已更新至 Python 3.8 - 终端打不开 - [已修复] 但细节不明

Updated to Python 3.8 - Terminal won't open - [Fixed] but details not understood

我将我的系统 (Ubuntu 18.04) 从 Python 3.6 更新到 Python 3.8,并重置默认值,以便 python3 现在指向 Python 3.8(而不是 3.6)。但是,从那时起,终端拒绝使用 Ctrl + Alt + T 和其他明显的方法(例如单击图标本身)打开。

当我 运行 gnome-terminal - 我得到以下信息:

usernew@HP:/usr/lib/python3/dist-packages/gi$ gnome-terminal
Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

我不知道这是什么意思,但我想这肯定表明更新过程中出了点问题。我知道还有其他关于类似问题的现有线程,但其中大部分是关于从 Python2 更新到 Python3,所以我不确定它们是否相关。

有人可以帮忙吗?

重要更新: 因此,在阅读 this answer 之后 - 我将 gnome-terminal 脚本的第一行更改为 #!/usr/bin/python3.6 而不是 #!/usr/bin/python3.8 - 这解决了问题。

此外,当我在终端中输入 python3 时,系统会根据需要显示 Python 3.8.2。

问题仍然存在 - 为什么这样做 实际问题是什么?一个解释会有所帮助,所以我真的知道我在做什么。

谢谢!

您不应该更改符号链接 /usr/bin/python3,因为一堆 Ubuntu 组件依赖于它,并且 Ubuntu-specific Python 库如 gi 仅针对 Ubuntu 附带的 Python 版本构建,即 18.04 上的版本 3.6。

请参阅 Gnome terminal will not start 关于 Ubuntu 的提问(尽管请注意它是关于 Ubuntu 16.04,它使用 Python 3.5)。所以修复它的最好方法是恢复符号链接:

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

至于将 Python 3.8 设置为默认值,您可以将 an alias 放入您的 bashrc 中:

alias python3=python3.8

但这只会影响您的用户的 shell。例如,在脚本中,如果您想使用 Python 3.8,则必须编写它,即 #!/usr/bin/env python3.8