簡體   English   中英

Sublime Text環境變量不存在

[英]Sublime Text environment variables not present

我已經安裝了yapfPyYapf軟件包( https://github.com/jason-kane/PyYapf ),用於Python代碼格式化的sublime文本。 此外,對於我的Python項目,我正在使用pipenv

在sublime中執行格式化命令時,我收到以下錯誤

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

但是,sublime文本仍然會給出原始錯誤。 查看包的源代碼,在PyYapf.py包中讀取環境:

self.popen_env = os.environ.copy()

打印self.popen_env的內容時, LANGLC_ALL似乎沒有設置為C.UTF-8值。

獲取envs的崇高文本在哪里?

快速解決方法:

$ 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 (或您喜歡的任何其他語言環境)。 有關區域設置錯誤的更多詳細信息,請關注兩篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM