Homebrew brew doctor 关于 /Library/Frameworks/Python.framework 的警告,即使安装了 brew 的 Python
Posted
技术标签:
【中文标题】Homebrew brew doctor 关于 /Library/Frameworks/Python.framework 的警告,即使安装了 brew 的 Python【英文标题】:Homebrew brew doctor warning about /Library/Frameworks/Python.framework, even with brew's Python installed 【发布时间】:2014-04-10 22:11:01 【问题描述】:当我运行 Homebrew's brew doctor
(Mac OS X 10.9.2) 时,我收到以下警告消息:
警告:Python 安装在 /Library/Frameworks/Python.framework
Homebrew 仅支持针对系统提供的 Python 或 酿造的 Python。特别是,安装到 /Library 的 Python 可以 干扰其他软件安装。
因此,我运行 brew install
并按照安装警告输出中提供的步骤安装 Homebrew 的 Python 版本。运行 which python
确认 Homebrew 的版本确实在我的 PATH 的顶部。输出为/usr/local/bin/python
。
尽管如此,当我重新运行brew doctor
时,我仍然收到相同的警告消息。如何抑制此警告?我需要从我的计算机中删除 /Library/Frameworks/Python.framework 目录吗?我只是应该忽略它吗?我的计算机上是否有其他应用程序可能导致发出此警告?
请注意,由于来自brew doctor
的警告,我没有任何应用程序特别会遇到错误。另请注意,当我运行brew doctor
时,此警告消息并不总是打印出来,它是最近开始出现的。另外,我在我的电脑上使用 Python 2.7,试图远离 Python 3。
【问题讨论】:
【参考方案1】:我遇到了同样的问题。当我通过 Homebrew 升级 python3 时,我开始得到这个:
-bash: python3: command not found
我与安装在/Library/Framework/Python.framework
中的Python 有同样的冲突。我刚刚做了一个brew link overwrite
,现在一切正常。在 /Library/Framework/Python.framework
here 中有一些关于如何处理 Python 版本的信息。
我想您可以按照链接的建议尝试删除该版本,只要确保该版本未被使用即可。当我进入 Python.framework 目录时,我看到了一些 EPD 版本的 Python,我认为这是 Enthought。您可以删除它,但如果除了难看的 Homebrew 警告消息之外它没有给您带来任何问题,那么我认为您现在应该忽略它。
更新:
我确实删除了 Python.framework 目录,通过在该目录中四处寻找,我开始看到一些我没有使用 Homebrew 安装的旧版本的 Python。一个来自 Enthought,另一个是 Python3.3 的发行版。我认为框架目录中的一些安装是用户安装。我在我的系统上安装了 R,还有一个 R.framework 目录,所以我认为其中大部分是用户安装。删除目录后,我只需要调用 brew prune 即可删除旧的符号链接。我检查了 python 2.7.6 和 3.3.4 的两个 brew 版本,它们似乎与我安装的所有软件包都处于良好的工作状态。我想我将删除该目录或 python 版本的决定留给您自行决定。
【讨论】:
在我的 el capitan 笔记本电脑上,/Library/...
处的 Python 版本是实际使用的版本,并且与 /usr/local/bin/python
和 /usr/local/bin/python3
符号链接。所以在删除它们之前一定要看看你是如何设置的。
在哪里可以访问这个 /Library 目录?【参考方案2】:
我也收到了这条消息。
某些东西,有时会安装
/Library/Frameworks/Python.framework
在我的机器上(文件夹日期大约是 4 年前)。
我已选择删除它。
请注意,Apple 提供的框架位于
/System/Library/Frameworks/Python.framework/
【讨论】:
【参考方案3】:根据this thread,输入以下命令:
sudo rm -rf /Library/Frameworks/Python.framework
因为您的计算机上安装了多个 Python,而这将删除可能在将来导致其他问题的一个。
【讨论】:
将 Python.framework 目录移动到其他名称,如 Python.framework.old 是一种不那么激进的方法。这样,如果有人出错,您可以将目录放回原处。 这不是一个好的解决方案,因为许多应用程序都使用系统级 Python。 @jmcmahon443 这不是系统 Python,它是您在自制软件之外安装的。【参考方案4】:手动删除目录可能是一场噩梦,但幸运的是“brew”可以解决这个问题。完成删除后,输入以下内容:
brew doctor
上述命令将列出损坏的系统链接。为了摆脱这些损坏的符号链接,请输入:
brew prune
再次检查“brew doctor”以确保没有损坏链接。然后您的系统就可以开始冲泡了。
【讨论】:
brew prune
现已弃用,应改用brew cleanup
【参考方案5】:
您可以按照我在下面的说明使用此解决方案
sudo rm -rf /Library/Frameworks/Python.framework
brew doctor
brew prune
brew update
该组合为我修复了它,即使认为此错误通常不会导致任何重大问题,只是看到它们在 brew doctor 下弹出让我很恼火
【讨论】:
【参考方案6】:我从 Homebrew 安装了 Python 3,然后直接从 Python 网站安装了另一个 Python 3。
我删除了/Library/Frameworks/Python.framework
。我没有在.bash_profile
中添加任何PATH
或PYTHONPATH
变量。然后我在shell中检查了以下内容:
~$ python
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
~$ python3
Python 3.6.4 (default, Mar 9 2018, 23:15:12)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
~$
此外,我检查了以下内容:
~$ whereis python
/usr/bin/python
~$ whereis python3
~$ which python
/usr/bin/python
~$ which python3
/usr/local/bin/python3
~$ which pip
/usr/local/bin/pip
~$ which pip3
/usr/local/bin/pip3
~$ whereis pip
~$ whereis pip3
我有点担心whereis python3
、whereis pip
和whereis pip3
什么都没有返回,但是由于启动 Python 没有问题,我认为删除 /Library/Frameworks/Python.framework
是安全的。一个月后再问我。
【讨论】:
以上是关于Homebrew brew doctor 关于 /Library/Frameworks/Python.framework 的警告,即使安装了 brew 的 Python的主要内容,如果未能解决你的问题,请参考以下文章
Brew Doctor 说:“警告:/usr/local/include 不可写。”