崇高文本环境变量不存在



我已经安装了yapfPyYapf包(https://github.com/jason-kane/PyYapf(,用于Python代码格式化的精美文本。此外,对于我的 Python 项目,我正在使用 pipenv .

在崇高中执行格式化命令时,我收到以下错误

Traceback (most recent call last):
  File "~/.pyenv/versions/3.6.8/bin/pipenv", line 10, in <module>
    sys.exit(cli())
  File "~/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "~/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 696, in main
    _verify_python3_env()
  File "~/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pipenv/vendor/click/_unicodefun.py", line 124, in _verify_python3_env
    ' mitigation steps.' + extra
RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Consult https://click.palletsprojects.com/en/7.x/python3/ for mitigation steps.
This system supports the C.UTF-8 locale which is recommended.
You might be able to resolve your issue by exporting the
following environment variables:
    export LC_ALL=C.UTF-8
    export LANG=C.UTF-8 

我现在已经尝试了使用上述两个导出的建议,并在我的配置文件中全局设置它们(并重新启动(。打开终端并检查它们是否可用:

$printenv | grep "C.UTF-8"
LC_ALL=C.UTF-8
LANG=C.UTF-8

然而,崇高的文本仍然给出了原始错误。查看包的源代码,环境在PyYapf.py包中读入如下:

self.popen_env = os.environ.copy()

打印self.popen_env的内容时,LANGLC_ALL似乎未设置为C.UTF-8值。

崇高的文本从哪里获得环境?

快速解决方法:

$ cd ~/.config/sublime-text-3/Packages
$ mkdir -p Default
$ echo 'import os; os.environ["LC_ALL"] = os.environ["LANG"] = "C.UTF-8"' > Default/echo.py

好吧,看在上帝的份上,不要尝试这个讨厌的黑客。请花一些时间正确设置您的区域设置,否则您将来可能会遇到更多区域设置问题。

对于Linux Mint和其他Debian变体,只需运行$ sudo dpkg-reconfigure locales,并在列表中勾选en_US.UTF-8(或任何其他您喜欢的语言环境(。请关注这两篇文章,了解有关区域设置错误的更多详细信息。

最新更新