包需要不同的 Python: 2.7.17 not in '>=3.6.1' while setting up the pre-commit
Package requires a different Python: 2.7.17 not in '>=3.6.1' while setting up pre-commit
我克隆了一个存储库,安装了预提交并且是 第一次提交。
这是预提交包实际安装和设置的时间。我遇到了以下问题。
[INFO] Installing environment for https://github.com/asottile/seed-isort-config.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/home/roopak/.cache/pre-commit/repokb2ckm/py_env-python2.7/bin/python', u'/home/roopak/.cache/pre-commit/repokb2ckm/py_env-python2.7/bin/pip', 'install', '.')
return code: 1
expected return code: 0
stdout:
Processing /home/roopak/.cache/pre-commit/repokb2ckm
stderr:
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Package 'seed-isort-config' requires a different Python: 2.7.17 not in '>=3.6.1'
问题是我同时安装了 Python2.7 和 3。我的 pre-commit
安装时默认使用 Python 2.7。
解决方案 1:从 Python2.7 中删除预提交并将其添加到 Python3.
根据预提交的创建者 - @anthony-sottile - 最好将预提交与 Python3 一起使用。为此,我们必须从 Python2.7 卸载预提交并通过 Python3 安装它。
$ pip uninstall pre-commit # uninstall from Python2.7
$ pip3 install pre-commit # install with Python3
解决方案 2:使用 Python2.7 保持预提交(不推荐)
为了解决这个问题,我使用了预提交文档中的 default_language_version
。
参考:https://pre-commit.com/#overriding-language-version
通过设置 default_language_version
所有挂钩都将使用这个特定版本。如果需要覆盖任何特定的挂钩,可以在挂钩上设置此 属性 - language_version:
- 。
例如:-
default_language_version:
# force all unspecified python hooks to run python3
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.5.0
hooks:
- id: trailing-whitespace
name: trim trailing whitespace
description: This hook trims trailing whitespace on files
entry: trailing-whitespace-fixer
- id: check-merge-conflict
name: check for merge conflict
description: Prevent accidentally commiting files with merge conflicts.
language_version:
python: python2.7
此示例 .pre-commit-config.yaml
文件将默认 python 版本设置为 Python 3. 对于挂钩 - check-merge-conflict
它将使用 Python 2.7.
我克隆了一个存储库,安装了预提交并且是 第一次提交。 这是预提交包实际安装和设置的时间。我遇到了以下问题。
[INFO] Installing environment for https://github.com/asottile/seed-isort-config.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/home/roopak/.cache/pre-commit/repokb2ckm/py_env-python2.7/bin/python', u'/home/roopak/.cache/pre-commit/repokb2ckm/py_env-python2.7/bin/pip', 'install', '.')
return code: 1
expected return code: 0
stdout:
Processing /home/roopak/.cache/pre-commit/repokb2ckm
stderr:
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Package 'seed-isort-config' requires a different Python: 2.7.17 not in '>=3.6.1'
问题是我同时安装了 Python2.7 和 3。我的 pre-commit
安装时默认使用 Python 2.7。
解决方案 1:从 Python2.7 中删除预提交并将其添加到 Python3.
根据预提交的创建者 - @anthony-sottile - 最好将预提交与 Python3 一起使用。为此,我们必须从 Python2.7 卸载预提交并通过 Python3 安装它。
$ pip uninstall pre-commit # uninstall from Python2.7
$ pip3 install pre-commit # install with Python3
解决方案 2:使用 Python2.7 保持预提交(不推荐)
为了解决这个问题,我使用了预提交文档中的 default_language_version
。
参考:https://pre-commit.com/#overriding-language-version
通过设置 default_language_version
所有挂钩都将使用这个特定版本。如果需要覆盖任何特定的挂钩,可以在挂钩上设置此 属性 - language_version:
- 。
例如:-
default_language_version:
# force all unspecified python hooks to run python3
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.5.0
hooks:
- id: trailing-whitespace
name: trim trailing whitespace
description: This hook trims trailing whitespace on files
entry: trailing-whitespace-fixer
- id: check-merge-conflict
name: check for merge conflict
description: Prevent accidentally commiting files with merge conflicts.
language_version:
python: python2.7
此示例 .pre-commit-config.yaml
文件将默认 python 版本设置为 Python 3. 对于挂钩 - check-merge-conflict
它将使用 Python 2.7.