【问题标题】:Scrapy - Homebrew Python error OS XScrapy - 自制 Python 错误 OS X
【发布时间】:2014-09-10 00:09:30
【问题描述】:

我正在运行 OS X 版本 10.9.4。

我已经运行了 brew install python。我收到以下错误...有人可以向我解释发生了什么以及我可以做些什么来解决它吗?

我正在学习本教程:http://doc.scrapy.org/en/latest/intro/install.html (最终我正在尝试下载 Scrapy。如果有人除了他们网站的教程之外还有什么可以给我一个非常详细的一步一步的东西,我真的很感激)

=> brew install python
==> Installing python dependency: readline
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/readline-6.3.8.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring readline-6.3.8.mavericks.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

Mac OS X provides similar software, and installing this software in
parallel can cause all kinds of trouble.

OS X provides the BSD libedit library, which shadows libreadline.
er to prevent conflicts when programs look for libreadline we are
ting this GNU Readline installation to keg-only.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/readline/lib
    CPPFLAGS: -I/usr/local/opt/readline/include

==> Summary
????  /usr/local/Cellar/readline/6.3.8: 40 files, 2.1M
==> Installing python
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/python-2.7.8_1.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring python-2.7.8_1.mavericks.bottle.2.tar.gz
==> Caveats
Setuptools and Pip have been installed. To update them
  pip install --upgrade setuptools
  pip install --upgrade pip

You can install Python packages with
  pip install <package>

They will install into the site-package directory
  /usr/local/lib/python2.7/site-packages

See: https://github.com/Homebrew/homebrew/wiki/Homebrew-and-Python

.app bundles were installed.
Run `brew linkapps` to symlink these to /Applications.
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists. You may want to remove it:
  rm /usr/local/bin/2to3

To force the link and overwrite all conflicting files:
  brew link --overwrite python

To list all files that would be deleted:
  brew link --overwrite --dry-run python

Possible conflicting files are:
/usr/local/bin/2to3 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/2to3
/usr/local/bin/2to3-2 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/2to3-2
/usr/local/bin/2to3-2.7 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/2to3-2.7
/usr/local/bin/idle -> /Library/Frameworks/Python.framework/Versions/2.7/bin/idle
/usr/local/bin/idle2 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/idle2
/usr/local/bin/idle2.7 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/idle2.7
/usr/local/bin/pydoc -> /Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc
/usr/local/bin/pydoc2 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc2
/usr/local/bin/pydoc2.7 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc2.7
/usr/local/bin/python -> /Library/Frameworks/Python.framework/Versions/2.7/bin/python
/usr/local/bin/python-config -> /Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
/usr/local/bin/python2 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2
/usr/local/bin/python2-config -> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
/usr/local/bin/python2.7 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
/usr/local/bin/python2.7-config -> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
/usr/local/bin/pythonw -> /Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw
/usr/local/bin/pythonw2 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2
/usr/local/bin/pythonw2.7 -> /Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
/usr/local/bin/smtpd.py -> /Library/Frameworks/Python.framework/Versions/2.7/bin/smtpd.py
/usr/local/bin/smtpd2.7.py -> /Library/Frameworks/Python.framework/Versions/2.7/bin/smtpd2.7.py
/usr/local/bin/smtpd2.py -> /Library/Frameworks/Python.framework/Versions/2.7/bin/smtpd2.py
==> /usr/local/Cellar/python/2.7.8_1/bin/python -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/2.7.8_1/bin --install-lib=/usr/local/lib/python2.7/site-packa
==> /usr/local/Cellar/python/2.7.8_1/bin/python -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/2.7.8_1/bin --install-lib=/usr/local/lib/python2.7/site-packa
==> Summary
????  /usr/local/Cellar/python/2.7.8_1: 4776 files, 76M

【问题讨论】:

  • 另外,你为什么要brew install python?你已经有了 Python 2.7.5;它与小牛队一起出现。您需要 2.7.8 中的错误修复之一吗?或者您只是想学习如何在您的PATH 上管理 Python 2.7 的两个并行安装,因为这听起来很有趣?
  • Error: The 'brew link' step did not complete successfully怎么样
  • 对不起,我没有意识到你发了这么多帖子,以至于它向下滚动了……
  • @abarnert 许多消息来源建议安装一个打包的 Python,而不是依赖于 Mavericks 附带的那个,所以也许在这方面保持你的批评
  • @JohnMee:许多源代码都是为 OS X 10.5 编写的,它带有一个非常旧且部分损坏的 Python 版本。无论如何,如果您想学习如何在PATH 上并行管理 Python 2.7 的两个(或者实际上是三个)版本,即使这不是必需的,请成为我的客人。但是你必须知道如何做一些基本的事情,比如跟踪你正在运行的pip,而不是仅仅运行你碰巧拥有的任何pip

标签: python macos pip homebrew


【解决方案1】:

您的问题是您已经将 Python 2.7 安装到 /usr/local(在 Apple 预安装到 /usr 的 Python 2.7 之上)。最有可能的猜测是您从 python.org 运行了官方安装程序。

由于 Homebrew 尝试安装到 /usr/local,并且你不能在同一个地方有两个同名的东西,它不会让你这样做。

如果您确实需要在系统上安装三个 Python 2.7,则必须为其中一个选择不同的位置。请注意,现有的实际上只是一组指向/Library/Frameworks/Python.framework/Versions/2.7/ 的符号链接,而您尝试安装的新版本实际上只是一组指向/usr/local/Cellar/python/2.7.8 的符号链接。因此,任何一个都不需要符号链接。而且 Homebrew 可以很容易地不安装符号链接:只是不要执行 link 步骤。

当然,这意味着你不能只运行pip 来为 Homebrew Python 安装包,你必须运行/usr/local/Cellar/python/2.7.8/bin/pip。当然,您还必须运行 /usr/local/Cellar/python/2.7.8/bin/python 才能使用 Homebrew Python。

不用说,您可以将地窖目录添加到您的 PATH... 但这会更加增加您的困惑。你可以很容易地结束,例如,PATH 上的第一个 pip 来自 Homebrew 地窖,而第一个 ipython 来自 python.org 安装,所以你安装了东西但找不到它们— 或者,更糟糕的是,您的 pip 和您的 python-config 不匹配,因此每次安装都比需要 C 编译器感到困惑并失败。

所有这些都引发了一个问题,即为什么您需要三个 Python 2.7 版本(至少两个在您的 PATH 上),更不用说两个版本了。如果你知道你在做什么,你就可以让它发挥作用……但这里显然不是这样。那么,你为什么要让自己变得困难呢?

【讨论】:

  • 我不得不运行 brew install python 因为我正在为另一个项目安装 Crazyflie 客户端,而 Apple 以无法与客户端一起使用的方式修改了 python 构建。见wiki.bitcraze.se/…
  • 您建议解决此问题的最佳方法是什么?
  • @IshaanTaylor:该页面没有在任何地方显示“Apple 以无法与客户端一起使用的方式修改了 python 构建”,那么您从哪里得到的呢?另外,是什么让您认为您需要安装 both python.org(或其他一些)Python Homebrew ?
  • @IshaanTaylor:同时,解决问题的最佳方法是 (a) 如果您不需要额外的 Python,则将它们都去掉; (b) 如果您需要 Homebrew,但不需要其他第三方的,请去掉那个; (c) 如果你真的需要这三个,请了解更多关于 Unix 管理和 Homebrew 工作原理的信息,因为你会需要它。
  • 我在安装客户端时遇到了一些问题,所以我在谷歌上搜索了一些关于此的帖子,我听从了他们的建议并解决了问题。在那篇文章中,它描述了问题发生的原因。我试图找到该帖子,但我似乎无法从中回忆起任何关键字。我错误地认为 Homebrew 会删除现有的安装。我相信保留自制软件是从这里开始的最佳方式。谢谢你的帮助。我会对此进行测试,然后给出我的反馈。
猜你喜欢
  • 2017-04-05
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 2013-11-16
相关资源
最近更新 更多