在 python 3.5 中预先提交的 Pylint 设置
Pylint setup with pre-commit In python 3.5
我试图在我的项目中设置 pylint
和 pre-commit
。
我来到 回答他们告诉我如何设置我的 .pre-commit-config.yaml
.
当我转到答案中提到的repository时,他们已经写了
This mirror repository is deprecated, use pylint directly.
所以我这样设置 .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
我的项目和虚拟环境的 python 版本是 3.5.2
。
这是 pylint
或 pre-commit
中的错误吗?还是我做错了什么?
看起来您 运行 在设置了 broken/incorrect 语言环境的环境中。
通过 运行 env | grep -E '(LC|LANG)'
或 python3 -m locale
搜索您当前的区域设置
如果配置正确,python 应该选择 UTF-8
编码——通常您可以更正任何 .bashrc
/ etc. 设置为无效的语言环境,或者您可以设置自己做
常用值为:LANG=C.UTF-8
或 LANG=en_US.UTF-8
编辑:我也在修复 pylint here
首先使用下面的命令。
pip install -U setuptools
或者您可以创建新的虚拟环境。
然后手动运行pre-commit确认配置。
pre-commit run --all-files
然后你可以像
一样完成pylint配置
回购:https://github.com/pycqa/pylint
rev: pylint-2.4.4
hooks:
- id: pylint
args:
- --max-line-length=80
- --ignore-imports=yes
- -d duplicate-code
我试图在我的项目中设置 pylint
和 pre-commit
。
我来到 .pre-commit-config.yaml
.
当我转到答案中提到的repository时,他们已经写了
This mirror repository is deprecated, use pylint directly.
所以我这样设置 .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
我的项目和虚拟环境的 python 版本是 3.5.2
。
这是 pylint
或 pre-commit
中的错误吗?还是我做错了什么?
看起来您 运行 在设置了 broken/incorrect 语言环境的环境中。
通过 运行 env | grep -E '(LC|LANG)'
或 python3 -m locale
如果配置正确,python 应该选择 UTF-8
编码——通常您可以更正任何 .bashrc
/ etc. 设置为无效的语言环境,或者您可以设置自己做
常用值为:LANG=C.UTF-8
或 LANG=en_US.UTF-8
编辑:我也在修复 pylint here
首先使用下面的命令。
pip install -U setuptools
或者您可以创建新的虚拟环境。
然后手动运行pre-commit确认配置。
pre-commit run --all-files
然后你可以像
一样完成pylint配置
回购:https://github.com/pycqa/pylint
rev: pylint-2.4.4
hooks:
- id: pylint
args:
- --max-line-length=80
- --ignore-imports=yes
- -d duplicate-code