python 3.5中带预提交的Pylint设置
我试图在我的项目中使用python 3.5中带预提交的Pylint设置,python,python-3.x,python-3.5,pylint,pre-commit.com,Python,Python 3.x,Python 3.5,Pylint,Pre Commit.com,我试图在我的项目中使用预提交设置pylint。 我来回答他们告诉我如何设置我的.pre-commit config.yaml 当我去回答中提到的问题时,他们写道 此镜像存储库已弃用,请直接使用 因此,我将我的.pre-commit config.yaml文件设置如下 - repo: https://github.com/pycqa/pylint rev: pylint-2.4.4 hooks: - id: pylint args:
预提交设置pylint
。
我来回答他们告诉我如何设置我的.pre-commit config.yaml
当我去回答中提到的问题时,他们写道
此镜像存储库已弃用,请直接使用
因此,我将我的.pre-commit config.yaml
文件设置如下
- repo: https://github.com/pycqa/pylint
rev: pylint-2.4.4
hooks:
- id: pylint
args:
- --limit=8
- --rcfile=$PROJECT_ROOT/.pylintrc
但是现在当我试着去做
$ pre-commit run
它给出了以下错误:
An unexpected error has occurred: CalledProcessError: command: ('/Users/userabc/.cache/pre-commit/repokxyo7uuq/py_env-default/bin/python', '/Users/userabc/.cache/pre-commit/repokxyo7uuq/py_env-default/bin/pip', 'install', '.')
return code: 1
expected return code: 0
stdout:
Processing /Users/userabc/.cache/pre-commit/repokxyo7uuq
stderr:
ERROR: Command errored out with exit status 1:
command: /Users/userabc/.cache/pre-commit/repokxyo7uuq/py_env-default/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/setup.py'"'"'; __file__='"'"'/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/pip-egg-info
cwd: /private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/setup.py", line 60, in <module>
long_description = stream.read()
File "/Users/userabc/.pyenv/versions/3.5.2/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 4020: ordinal not in range(128)
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Check the log at /Users/userabc/.cache/pre-commit/pre-commit.log
发生意外错误:调用的进程错误:命令:('/Users/userabc/.cache/pre-commit/repokxyo7uuq/py_env-default/bin/python','/Users/userabc/.cache/pre-commit/repokxyo7uq/py_env-default/bin/pip','install','
返回代码:1
预期返回代码:0
标准:
处理/Users/userabc/.cache/pre-commit/repokxyo7uuq
标准:
错误:命令出错,退出状态为1:
命令:/Users/userabc/.cache/pre-commit/repokxyo7uuq/py_env-default/bin/python-c'import sys,setuptools,tokenize;sys.argv[0]=“private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/setup.py”__文件“'/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/setup.py'”;f=getattr(标记化,“'open'”,open)(\uuuuu文件);code=f.read().replace(“\r\n”“”、“\n”“”);f、 close();exec(编译(代码,“‘exec’”)‘蛋’信息——蛋库/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/pip蛋信息
cwd:/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/
完整输出(7行):
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/private/var/folders/gm/t0h6v8jx4bqd6cj73_k27myw0000gp/T/pip-req-build-5vjdd9f2/setup.py”,第60行,in
long_description=stream.read()
文件“/Users/userabc/.pyenv/versions/3.5.2/lib/python3.5/encodings/ascii.py”,第26行,解码
返回编解码器。ascii_解码(输入,自身错误)[0]
UnicodeDecodeError:“ascii”编解码器无法解码位置4020处的字节0xc2:序号不在范围内(128)
----------------------------------------
错误:命令出错,退出状态为1:python setup.py egg_info检查日志以获得完整的命令输出。
检查/Users/userabc/.cache/pre-commit/pre-commit.log上的日志
我的项目和虚拟环境的python版本是3.5.2
这是pylint
或pre-commit
中的错误吗?还是我做错了什么?看起来您运行的环境中设置了损坏/不正确的区域设置
通过运行env | grep-E'(LC | LANG)
或者python3-m locale
如果配置正确,python应该选择UTF-8
编码——通常可以更正.bashrc
/等设置为无效区域设置的内容,也可以自己设置
常见值为:LANG=C.UTF-8
或LANG=en_US.UTF-8
编辑:我也在修复派林
首先使用下面的命令
pip install -U setuptools
或者,您可以创建新的虚拟环境
然后手动运行预提交以确认配置
pre-commit run --all-files
然后您可以完成pylint配置,如
回购:
所以我做了env|grep-E'(LC|LANG)
&我得到的输出是LC|CTYPE=C
。我还运行了python3-m语言环境
,得到了输出。我的.zshrc
上的相关内容是。请注意,我在虚拟环境中运行这些命令LANG=en_US.UTF-8
已存在于my.zshrc
中。我在这里遗漏了什么?除非导出这些变量(export LANG=…
),否则您的zshrc不会做任何事情。噢,对不起,我的错,我在中导出LANG=en_US.UTF-8
,尝试在终端中回显它,然后运行$pre commit run
,问题仍然存在。同样的错误。这与您的python-m语言环境
输出或示例zshrc粘贴不匹配,因此缺少一些内容。您能否粘贴这些输出和完整的zshrc?如果操作正确,您应该看到以下内容:
rev: pylint-2.4.4
hooks:
- id: pylint
args:
- --max-line-length=80
- --ignore-imports=yes
- -d duplicate-code