Python 升华文本环境变量不存在
我已经安装了Python 升华文本环境变量不存在,python,plugins,environment-variables,sublimetext3,pipenv,Python,Plugins,Environment Variables,Sublimetext3,Pipenv,我已经安装了yapf和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/li
yapf
和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
然而,崇高的文本仍然给出了最初的错误。查看包的源代码,在PyYapf.py
包中读取环境,如下所示:
self.popen_env = os.environ.copy()
打印self.popen_env
的内容时,LANG
和LC_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 reconforme locales
,并勾选列表上的en_US.UTF-8
(或您喜欢的任何其他locale)。有关区域设置错误的详细信息,请参见第二部分。您是使用Linux还是MacOS?据我所知,os.environ()
应该直接向您提供正在运行的进程的环境。我建议重新启动以确保dock/launcher继承新环境,但您已经这样做了。如果从终端启动Sublime(如上所述验证变量后),是否会得到不同的结果?我总是从终端运行Sublime,因此它的VAR应该与我在终端中通过printenv
接收的VAR相同,或者不相同?我假设是这样。我过去在这些变量上也遇到过类似的问题,在终端中设置这些变量并从那里启动是有效的,而启动器图标则没有。
$ 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