python3.8 fails with "Fatal Python error: config_get_locale_encoding"

python3.8 fails with "Fatal Python error: config_get_locale_encoding"

好吧,不知何故,我在 macOS Mojave 下安装了 python3,但我不确定如何操作。我多年来一直使用 macports 来保持 python 最新,但是当我现在安装 python38 时,我根本无法 运行 python3。我总是这样:

$ python3.8
Fatal Python error: config_get_locale_encoding: failed to get the locale encoding: nl_langinfo(CODESET) failed
Python runtime state: preinitialized
$

我卸载了 macports 版本并重新安装,同样的事情。从 python.org 卸载然后重新安装,同样如此。

python27 运行没问题。 python37 也 运行 没问题。如果我使用 $python3.8 -I,python38 甚至不会工作,所以这不是一些网站包的怪异。

这是非常奇怪的一点:虽然我不能从 shell 运行 python38(任何 shell,从 bash 尝试过,我可以使用 IDLE.app 从 GUI 启动 python38。

奇怪的是,在我的另一台机器(我的笔记本电脑)上,安装了 macports 的 python38 工作得很好。

我很困惑,而且我不会轻易感到困惑。有什么想法吗?

尝试使用区域设置设置 LANG:

export LANG="en_US.UTF-8"

我遇到了同样的问题,并通过将以下变量定义放入我的 ~/.profile 中来修复它:

export LC_CTYPE="en_US.UTF-8"

LC_CTYPE 最初设置为“De_DE”并且缺少编码。

您应该选择您的语言和国家并相应地设置值,例如German/Germany 的这个值:

export LC_CTYPE="de_DE.UTF-8"

可能还有一个不明显的问题。如果你把export LC_CTYPE="en_US.UTF-8"放在~/.profile文件中,检查系统中是否没有~/.bash_profile。如果 ~/.bash_profile 存在 ~/.profile 中的命令将不会被执行。