Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 升华文本环境变量不存在_Python_Plugins_Environment Variables_Sublimetext3_Pipenv - Fatal编程技术网

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