python - 在pycharm控制台中为pipenv项目设置适当的字符编码

标签 python python-3.x character-encoding pycharm pipenv

我已经使用 /home/user/code/myproject/ 设置了一个 pipelinev 项目

pipenv --three

我已将 myproject 目录添加为 PyCharm 中的项目目录,并为 PyCharm 设置环境以使用 pipenv来自

File > Default Settings > Project Interpreter > 

enter image description here

但是当我从 PyCharm 的控制台中运行任何命令时,例如

pipenv install <package-name>

它给出的错误为

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 676, in main
    _verify_python3_env()
  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/_unicodefun.py", line 118, in _verify_python3_env
    'for mitigation steps.' + extra)
RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment.  Consult http://click.pocoo.org/python3/for mitigation steps.

This system lists a couple of UTF-8 supporting locales that
you can pick from.  The following suitable locales where
discovered: af_ZA.UTF-8, am_ET.UTF-8, be_BY.UTF-8, bg_BG.UTF-8, ca_ES.UTF-8, cs_CZ.UTF-8, da_DK.UTF-8, de_AT.UTF-8, de_CH.UTF-8, de_DE.UTF-8, el_GR.UTF-8, en_AU.UTF-8, en_CA.UTF-8, en_GB.UTF-8, en_IE.UTF-8, en_NZ.UTF-8, en_US.UTF-8, es_ES.UTF-8, et_EE.UTF-8, eu_ES.UTF-8, fi_FI.UTF-8, fr_BE.UTF-8, fr_CA.UTF-8, fr_CH.UTF-8, fr_FR.UTF-8, he_IL.UTF-8, hr_HR.UTF-8, hu_HU.UTF-8, hy_AM.UTF-8, is_IS.UTF-8, it_CH.UTF-8, it_IT.UTF-8, ja_JP.UTF-8, kk_KZ.UTF-8, ko_KR.UTF-8, lt_LT.UTF-8, nl_BE.UTF-8, nl_NL.UTF-8, no_NO.UTF-8, pl_PL.UTF-8, pt_BR.UTF-8, pt_PT.UTF-8, ro_RO.UTF-8, ru_RU.UTF-8, sk_SK.UTF-8, sl_SI.UTF-8, sr_YU.UTF-8, sv_SE.UTF-8, tr_TR.UTF-8, uk_UA.UTF-8, zh_CN.UTF-8, zh_HK.UTF-8, zh_TW.UTF-8

如何在PyCharm中设置编码?直接从终端也可以正常工作。

Edit 2

设置 > 编辑器 > 文件编码 窗口显示设置为 UTF-8 的全局编码。 enter image description here

终端中$ locale的输出

$ locale                                                                                                                                                                           
LANG=
LC_COLLATE="C"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

以及 PyCharm 控制台中 $ locale 的输出

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

如何设置合适的编码类型?即 en_US.UTF-8?我使用的是 Macbook Air (Sierra)

最佳答案

如果只是更改Pycharm的编码,可以点击: 设置->编辑器->文件编码。 建议您将所有语言选项更改为UTF-8。

您正在处理一个 Python 3 认为您只能使用 ASCII 数据的环境。根据您的计算机运行的区域设置,这些问题的解决方案会有所不同。

例如,如果您有一台德国 Linux 计算机,则可以通过将语言环境导出到 de_DE.utf-8 来解决该问题:

导出 LC_ALL=de_DE.utf-8 导出 LANG=de_DE.utf-8

如果您使用的是美国计算机,则选择 en_US.utf-8 编码。在一些较新的 Linux 系统上,您还可以尝试使用 C.UTF-8 作为语言环境:

导出 LC_ALL=C.UTF-8 导出 LANG=C.UTF-8

您需要在调用 Python 脚本之前执行此操作。

您可以搜索localeexport的用法。 如果你想改变本地设置的类型,只需使用: 导出=值(value)。 LC_CTYPE是最重要的变量,其他用于定义(金钱,消息,日期或时间等)的格式 您只能将其更改为 en_US.UTF-8:

export LC_CTYPE="en_US.UTF-8"

LC_ALL是一个全局变量,它将覆盖所有LC_*(不是Lang)

关于python - 在pycharm控制台中为pipenv项目设置适当的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572800/

相关文章:

python - pyqt 中的代码编辑器示例

python - 是否有任何资源可以让 Python 2.7 开发人员跟上 Python 3.3 的速度?

python - pandas.factorize 与自定义数组数据类型

java - Java中的Readline()不能正确处理中文字符

python - 在一行 Pandas 数据框中找到第一个真值

python - MySQL 使用列表推导式插入

python - 如何在 python 3 中找到笛卡尔元素的总和?

python - 打开文本文件,收到编码错误,尝试了多种方法但没有希望

android - 读取 NFC 标签时出现奇怪的字符

python - 访问列表中的特定字符