为什么在OS X Lion中pip安装程序期望gcc编译器为gcc-4.2?

5 投票
2 回答
1502 浏览
提问于 2025-04-17 10:16

在用pip安装Python包的时候,我遇到了以下错误:

unable to execute gcc-4.2: No such file or directory

很明显,pip在试图使用gcc-4.2,但这个版本并不在任何二进制目录里,比如说/usr/bin。经过在这个网站和其他地方的查找,我发现很多人都遇到了同样的问题。不过,gcc在OS X Lion中已经更新到4.2版本,这并不是版本的问题,而是/usr/bin下的gcc就是叫gcc,而不是gcc-4.2,并且它是链接到llvm-gcc的。在/usr/bin中把gcc-4.2作为gcc的一个链接添加后,pip就能顺利安装所有东西了。那么,为什么pip会去找gcc-4.2而不是gcc呢?这是pip、OS X Lion,还是pip中那些试图用gcc-4.2安装自己的包的问题呢?

最后,我用链接的方式解决这个问题是对的吗?还是说我应该用其他方法来修复这个问题呢?

2 个回答

0

你用的这个符号链接方法对你来说是个好办法。pip只是想确保它安装的时候用的是正确版本的GCC。因为你的电脑上正好有这个版本,所以你可以安全地把它指向你现有的gcc,pip就能找到它了。不过,如果你用的是gcc-4.1,那你的安装可能就会出问题了。

6

你现在用的这个 simlink 方法是个不错的解决办法。最终,负责支持 pip 的团队需要停止那种明确指定编译器版本的做法。这样做一开始就是个坏主意,随着平台上编译器的变化,只会变得更糟。

和 Milad 的回答相反,还有其他方法可以确定主机编译器的版本,而你的解决方案在支持 pip 的团队修复他们的代码之前是可以继续使用的。

撰写回答