在完成 brew update
和 brew upgrade python3
之后,我遇到了诸如 bad interpreter:/usr/local/opt/python/bin/python2.7: 没有那个文件或目录
。例如:
⇒ mkvirtualenv --python=/usr/local/bin/python3 labrador
mkvirtualenv:78: /usr/local/bin/virtualenv: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory
write() failed: Bad file descriptor
最佳答案
这里有两种可能。
首先,as of Homebrew 1.5 , python3
食谱已重命名 python
, 和 python
食谱现在可用 python@2
.参见 the current docs关于事物的组织方式。
同时 brew
尝试使它像魔术一样工作,如果你有一个非常旧的安装,或者只是一个非常复杂的设置,python
和 python3
来自 Homebrew,还有你 brew upgrade python3
,您最终只能得到新的 (3.x) python
您期望的食谱。
解决这个问题:
brew install python@2
其次,您可能已经将 virtualenv 安装到非 Homebrew Python 中,这对在哪里可以找到东西感到困惑。
此处最简单的解决方法是卸载 virtualenv
和 pip install
它与 Homebrew 3.x Python 一起使用。
更一般地说,如果除了 Homebrew 3.7、Homebrew 2.7 和 Apple 预装的 2.7 之外还有其他 Python 版本,除非你有充分的理由需要它们,否则你可能想要废弃它们。而且,如果您在 Apple 的 2.7 中安装了任何其他 Python 包,您可能想要卸载它们并确保永远不要接触 Apple 安装并且只使用 Homebrew 2.7。
或者,如果您确实需要大量 Python 安装,您应该习惯使用 <specific-python> -m tool
运行工具而不仅仅是 tool
.很难让所有不同的脚本和符号链接(symbolic link)保持同步,而且很容易以 pip
结束。你认为匹配 python
但实际上安装到一个完全不同的,和一个virtualenv
使用另一个,依此类推。
关于python2.7 : no such file or directory after brew upgrade python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468497/