环境: python3.9:没有这个文件或目录。

6

我有一些Python代码格式化程序作为Git pre-commit hook,我已经改变了我的Python版本。

brew list | grep python
python@3.7
python@3.9

brew unlink python@3.7
brew unlink python@3.9
brew link python@3.7

python -V
Python 3.7.9

现在好像出了问题,当我执行git commit时,会出现env: python3.9: No such file or directory的错误,那么env是什么?如何编辑它以使用python@3.7


1
我建议检查代码的预提交钩子,因为大多数Python脚本都以类似于#!/usr/bin/env python的shebang行开头。你可能会看到像#!/usr/bin/env python3.9这样的内容。你可以尝试将其更改为#!/usr/bin/env python3.7,但我不能保证它不会出现问题,因为一些Python 3.9的功能可能被脚本使用。 - Kamil
1
关于 env,它是一个在修改后的环境中启动程序的 shell 命令。您可以在 Linux/Unix 上运行命令 man env 来查看有关它的一些信息。 - Kamil
https://linux.die.net/man/1/env - phd
1
如果您正在使用 [pre-commit.com],请运行 pre-commit install,它将修复您的 shebang,使其指向您的新全局 Python 版本。 - anthony sottile
3个回答

4
.git/hooks/pre-commit文件中,我有以下内容。
#!/usr/bin/env python3.9

运行pre-commit install命令后,它被修复为#!/usr/bin/env python3.7


0

对我来说,我删除了旧的虚拟环境并重新创建它,然后就可以工作了:

$ deactivate
$ python3 -m venv env
$ source env/bin/activate

希望这能解决你的问题,谢谢!

0

尽管@mrgloom的回答指导了我正确的方向,但它还不足以解决我的问题。

在我从Ubuntu 21.10升级到22.04之后,这个错误突然发生了。很明显安装的Python版本不再是Python 3.9了。所以我立刻检查了一下,现在我有3.10版本。

仅仅用Python3.10编辑.git/hooks/pre-commit是不够的。

对我有用的是重新安装pre-commit: https://pre-commit.com/#install

因此,你可以运行pip install pre-commitbrew install pre-commit


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接