python2.7 : no such file or directory after brew upgrade python3

标签 python python-3.x homebrew

在完成 brew updatebrew 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尝试使它像魔术一样工作,如果你有一个非常旧的安装,或者只是一个非常复杂的设置,pythonpython3来自 Homebrew,还有你 brew upgrade python3 ,您最终只能得到新的 (3.x) python您期望的食谱。

解决这个问题:

brew install python@2

其次,您可能已经将 virtualenv 安装到非 Homebrew Python 中,这对在哪里可以找到东西感到困惑。

此处最简单的解决方法是卸载 virtualenvpip 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/

相关文章:

javascript - 如何brew安装特定版本的Node?

python - 如何迭代一组张量并将每组中的元素传递给函数?

python - 将 CELL 中最常见的元素附加到 pandas 列

python - 退出 Tkinter 下拉菜单

python - 正则表达式在 python 中匹配和清理引号

opencv - 使用 homebrew 安装 opencv 3.3.1(之前的版本)

macos - 如何在命令终止时调试 vimrc

python - Python 列表切片中间的逗号 (,) 有何作用?

python-3.x - 在Python中查找列表的中间点

python - 操作从 dict(tuple-float) 创建的 DataFrame