【问题标题】:Unable to Install Python Packages on a Mac (gcc-4.0 error) [duplicate]无法在 Mac 上安装 Python 包(gcc-4.0 错误)[重复]
【发布时间】:2012-11-25 02:44:15
【问题描述】:

可能重复:
How to use/install gcc on Mac OS X 10.8 / Xcode 4.4

由于以下错误,我无法使用 easy_insallpip 安装任何 Python 包。我到处寻找,看到了这个错误的几种变体,但还没有找到易于理解/遵循的解决方案。非常感谢任何帮助!

我在 Mac OS 10.8.1 上运行

Python 2.7.3 版

Xcode 4.5.2 版(已安装命令行工具)

...如果您需要更多信息来找出问题所在,请询问!

$ easy_install pil
Searching for pil
Reading http://pypi.python.org/simple/pil/
Reading http://www.pythonware.com/products/pil
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Writing /var/folders/9q/bvqtzkbx1hg1934b36zgk0y40000gn/T/easy_install-wfZs_Y/PIL-1.1.7/setup.cfg
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /var/folders/9q/bvqtzkbx1hg1934b36zgk0y40000gn/T/easy_install-wfZs_Y/PIL-1.1.7/egg-dist-tmp-DXWOmC
WARNING: '' not a valid package name; please use only.-separated package names in setup.py
--- using frameworks at /System/Library/Frameworks
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

不确定这是否有帮助,但是当我运行 sudo port select --list gcc 时,我得到以下信息:

Available versions for gcc:
    llvm-gcc42
    mp-gcc45
    none (active)

【问题讨论】:

  • @jdi 感谢您的链接...但正如我上面提到的,我已经安装了最新版本的 Xcode,并在 Xcode Preferences 中安装了命令行工具(这是在该链接)。有什么想法吗?
  • 您是否检查过您的 /Developer 位置和/或其他位置以确保问题在于您的 PATH 中没有包含它?运行这个:find /usr/local/bin /Developer/ -name "gcc" | grep "/bin"
  • @jdi 当我运行它时,我得到find: /Developer/: No such file or directory
  • 如果这就是你所看到的,似乎 gcc 根本没有安装。 `find /usr/ -name "gcc" 怎么样? grep“/bin”?您确定命令行工具已实际安装,而不仅仅是下载?
  • 在 OS X 10.8 和 Xcode 4.5 上你基本上无法获得gcc-4.0。但是,除了一些写得不好的包(PIL 不是其中之一)之外,你永远不需要它,至少对于 Apple 的 Python 安装或 python.org 上的任何最近的东西都不需要。因此,除非您以某种方式将CC=gcc-4.0 加入到您的shell 环境中,否则您可能已经从其他来源获得了一个糟糕的Python 安装。 which easy_install 说什么?

标签: python macos gcc compiler-construction terminal


【解决方案1】:

这只是一个猜测,基于您必须安装 MacPorts 的事实(或者sudo port select --list gcc 只会给您一个port: command not found 错误),但我怀疑您已经安装了 MacPorts Python 2.7.3,并且您正在尝试为此安装 PIL。

如果您想将包添加到 MacPorts Python 安装中,您应该始终首先检查是否有端口,如果有,请使用它:

port search pil

在这种情况下,您会发现有一个py27-pil。安装它。

同时,当这不适用时,您应该几乎总是使用pip 而不是easy_install(有一些例外,特别是readline),并且您需要确保您的路径设置正确所以你运行的是你认为的那个,或者你最终可能会运行为 MacPorts python 和 Apple python 设置的脚本。

但是,我还怀疑您安装了过期的 MacPorts 安装程序,该安装程序是为早期版本的 OS X 安装的,并且在升级到 Mountain Lion 时没有按照升级说明进行操作。如果这是真的,唯一合适的解决方法是获取已安装端口列表sudo rm -rf /opt/local,运行最新的 MacPorts 安装程序,然后运行 ​​sudo port install 所有以前安装的端口。

最重要的是,上次我使用 MacPorts Python(这是很久以前的事了,所以可能不是当前信息),它没有将东西安装到 /Library 中(IIRC,它设置了 @987654331 @ 作为额外的库目录),这意味着您实际上至少有 三个 Python 2.7 安装:Apple(在 /System/Library/usr 中)、MacPorts(在 /opt/local 中)和一些其他版本(在/Library 和可能在/usr/local 中),当你打算使用第三个时,你正在使用第二个的easy_install

如果你不知道如何处理这种多份相同的精神错乱,而且你没有非常非常好的理由邀请它,那么正确的答案是不要安装这些其他 Python(并卸载您已有的任何 Python)。你真的需要 MacPorts python 吗?你可以只使用内置的 Python 吗?如果不是,为什么不呢?你至少可以使用 python.org Python 吗?

如果您不想修复任何基本问题,并且您真的想将东西安装到期望您拥有 gcc-4.0 的 MacPorts Python 中,您可以安装 macports gcc4.0 端口,尽管您可能不得不欺骗人们相信macports-gcc-4.0 真的是gcc-4.0。 (可能有一种方法可以用 MacPorts 正确地做到这一点;如果没有,符号链接可能会起作用。)但这可能是个坏主意,如果你回来时说“这似乎有效,但后来我在重建东西 348 分钟后又遇到了这个错误”,没有人能帮助你。

【讨论】:

  • 感谢您的详细解答。我没有充分的理由使用 MacPorts python。我应该采取哪些步骤来使用内置 Python 或 python.org Python(我应该卸载/配置什么)?我非常感谢使用我应该运行的最简单的分步命令进行编辑来解决此问题。
  • 我相信sudo port uninstall python27 会解决这个问题(同时让它仍然在构建,以防你需要它回来)。如果你有第三个 Python,我无法确定如何在不知道是哪一个的情况下摆脱它——但如果是 python.org 的,我很确定他们在网站上的某个地方有说明。之后,which easy_install 应该给你/usr/bin/easy_install/System/Library 内的路径(注意System 部分),这意味着你又在使用Apple 的python。
  • 如果我在运行which easy_install 时仍然得到这个/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install,是否需要卸载第三个Python?
  • 我检查了/usr/bin/ 的内部,easy_install-2.7 在那里。反正有没有用这个easy_install 代替另一个?
  • @sgarza62:是的,当然您可以显式运行sudo /usr/bin/easy_install-2.7 而不仅仅是运行sudo easy_install-2.7。如果您想这样做,请确保始终运行 /usr/bin/python2.7 而不仅仅是 python2.7python 等等,否则您最终会因为安装了 PIL 而感到困惑,但您可以不要导入它,因为您使用的 Python 2.7 与安装它的目的不同……但如果您对此保持一致,它将起作用。就个人而言,我很难保持一致,并且发现将我的系统保持在我可以理解的状态更容易......
猜你喜欢
  • 2020-04-16
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 2017-06-11
  • 2019-01-23
  • 2018-09-27
  • 1970-01-01
相关资源
最近更新 更多