$ python -bash: /usr/local/bin/python: 没有那个文件或目录

16

运行一个重写文件的脚本后,Python出现了某些问题。每次使用它时都会出现错误:

$ python
-bash: /usr/local/bin/python: No such file or directory

我执行了brew doctor命令:

$ brew unlink python && brew link python

昨天我尝试重新安装以修复它:

$ brew update
$ brew install python
$ brew upgrade python

根据我的发现,似乎我需要创建符号链接,但我不想让情况变得更糟,并且不想丢失整个操作系统。

$ which python
/usr/bin/python

我该如何修复这个 Python 问题?


看起来 /usr/local/bin 在你的路径中较早,并且有一个 python/usr/local/bin 中,它是指向某个不存在的东西的软链接。运行 ls -l /usr/local/bin/python 命令并查看它指向哪里。 - AChampion
不要使用 which -- 它不是 shell 的一部分,也不知道别名、shell 函数、用于缓存 PATH 查找结果的结构或其他任何奇怪的东西。相反,使用 type python 来弄清楚发生了什么。 - Charles Duffy
@AChampion,如果/usr/local/bin在PATH中更早出现,which就会识别出那里的副本。更可能的是我们有一个别名或函数。 - Charles Duffy
@codyc4321,如果您仍然对正确的修复方法感兴趣,请编辑问题并在系统出现错误时提供type python命令的输出。 - Charles Duffy
2个回答

31

在Homebrew 1.7.2和MacOS 10.13.6上似乎出了些问题。

即使卸载了所有Python版本并重新安装,python --version也无法工作。

大多数人可能已经尝试过这些步骤...

brew uninstall --ignore-dependencies python
brew uninstall --ignore-dependencies python2
brew uninstall --ignore-dependencies python3
brew install python
brew unlink python && brew link python
brew unlink python3 && brew link python3

最终对我起作用的是...

sudo ln -s /usr/local/bin/python3 /usr/local/bin/python

然后再次为pip安装所需的软件包创建虚拟环境:

sudo ln -s /usr/local/bin/pip3 /usr/local/bin/pip

1
这在Catalina甚至低版本的Python/Pip中都能正常工作。 - Ivan Aracki
这个答案中的最后两步非常重要。 - kelrob-dev

2

如果这确实解决了您的问题,为什么不将其作为被接受的答案呢? - Charles Duffy
它有一个为期两天的阻塞,那个人尝试了,但没有提醒系统告诉你接受答案。 - codyc4321
他尝试过,但是将某些东西标记为已接受意味着如果其他人遇到相同的问题,这将是他们首先看到的东西。奖励努力而不是准确性可能感觉像是做“好事”,但它并不能帮助其他遇到相同问题的人——这正是策划问答知识库的全部意义。 - Charles Duffy
每次有人链接一篇“解释”SO设计决策的文章时,我都会想知道写这篇文章的人是否曾经使用过这个东西。为什么没有一个严肃的竞争对手?!?! - codyc4321
如果他们不允许你在48小时内选择一个答案作为正确答案,那么只需在我登录时提醒我选择答案的问题。这个网站是一个很好的概念,但使用起来很混乱。 - codyc4321
它不会让那个人删除他的答案?得了吧。 - codyc4321

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