已更新至 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
我将我的系统 (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