你有许多不同的Python安装,至少还有一个已删除的Python安装。这种情况正是为什么不再建议直接运行pip或pip3,而是优先考虑:
python3 -m pip install whatever
这样可以确保你绝对正常地运行 pip
,并且与 python3
相匹配,而 pip3
只是意味着你在运行与某个 Python 3.x 相匹配的 pip
中的任意一个,这可能是你安装的任何一个版本。
或者,更好的方法是使用虚拟环境,这样你就可以依赖于当前活动环境中的 python
和 pip
命令,甚至不必担心它们在系统范围内的含义。
但是,如果你想知道你是如何陷入这种困境的以及如何解决它:
你的 python3
命令可能来自 Homebrew Python(你可以检查一下;ls -l /usr/local/bin/python3
,看看它是不是一个指向 /usr/local/Cellar/python
中某个文件的符号链接)。
你的 pip3
命令来自一个不存在的 Python 3。很可能,你安装了另一个 Python 3,覆盖了 Homebrew Python 3 的 pip3
,然后卸载了它,留下了一个损坏的 pip
。
最简单的方法是只需执行 rm /usr/local/bin/pip3
。然后,假设你想让 Homebrew Python 成为你的默认的 python3
和 pip3
,重新执行 brew link python
命令。如果它向你展示任何警告或错误,则仍有其他问题需要解决。如果没有,/usr/local/bin/pip3
现在应该是 Homebrew 3.6 版本的 pip
,而 which pip3
应该会选择 /usr/local/bin/pip3
,一切都很好,直到下一次安装另一个 Python 3 并覆盖一堆东西。
更好的解决方法是选择一种安装 Python 的方法——无论是 Anaconda、Homebrew、python.org 安装程序还是其他方式——并始终使用该方法。卸载所有内容,重新安装你实际想要的那个,以后再也不要碰其他的了。(不幸的是,你仍然会被困在 Apple 的系统 Python 2.7 中,但如果你只使用 3.x,这就无关紧要了。)
Xcode命令行工具
也提供了python3
。 - PatrickTpython3 -m pip..
这一行更改为更详细的Python3版本,例如python3.10 -m pip..
。 - Timopip3 install xyz
进行安装。 - Abhishek Thapliyal