如何使用 brew 并为 Python 3.6.8 安装预提交

How can I use brew and install precommit for Python 3.6.8

我想使用 brew 为 python 3.6.8 安装预提交。我正在使用 macOS Catalina(版本 10.15.7)

我正在使用 brew install pre-commit 进行安装。

我遇到问题是因为我的预提交使用 Python 3.9,我想避免这种情况(即让 brew 预提交使用 python 3.6)。

当我尝试 brew install pre-commit 时,我发现自动看到消息 Downloading https://homebrew.bintray.com/bottles/python%403.9-3.9.0_2.catalina.bottle.tar.gz

我所在的环境是python3.6.8。 ( python -V returns python 3.6.8).

此外,

username@USERNAME-M-F1AU % echo "$PATH" 
/Users/username/.pyenv/shims:/Users/username/.pyenv/shims:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

我也有,python3.9(python@3.9),(虽然不是激活环境)在/usr/local/Cellar。我在 /usr/local/Cellar 中还有一个 pre-commit 的文件夹。 /usr/local/Cellar/pre-commit 内的子文件夹中的某些路径链接到 python 3.9。以下是相同的示例。

python3 -> ../../../../../opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin/python3.9
python -> ../../../../../opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin/python3.9

/usr/local/bin/pre-commit的第一行是:

#!/usr/local/Cellar/pre-commit/2.9.0/libexec/bin/python

我已经尝试过以下方法:

ln -nfs /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /usr/local/Cellar/pre-commit/2.9.0/libexec/bin/python
ln -nfs /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /usr/local/Cellar/pre-commit/2.9.0/libexec/bin/python3

这里,我得到如下错误/usr/local/Cellar/pre-commit/2.9.0/libexec/bin/python3: No module named pre_commit

我可以使用 brew 安装预提交的最佳方式是什么,以便它使用 python 3.6 而不是 python 3.9?

我看到了this brew precommit page。看起来 brew install pre-commit 总是自动使用 python 3.9.0.

任何帮助将不胜感激。

brew 只适用于最新版本的软件——他们根据最新版本的 python

打包瓶子

可以 反对旧的公式,虽然此时 3.6 包不再干净地构建(我试过,作为向你展示如何做到这一点的一种方式,但他们有点烂)

因为看起来您正在使用 pyenv - 最好的选择可能是使用它安装 python3.6,然后使用 pip 安装 pre-commit 从那里

我自己不使用 pyenv,但如果我没记错的话你会 运行:

pyenv install 3.6.12
pyenv global 3.6.12

然后您将使用 python3.6 -m pip install pre-commit --user(您可能需要使用 .bashrc / [= 添加 --user bin 目录到您的 PATH 19=])


免责声明:我是 pre-commit 的创建者,我为它的 brew 公式做出了一些贡献