无法在OS X Lion中构建Cython/distutils。

3 投票
3 回答
1784 浏览
提问于 2025-04-17 08:05

我在网上找了很多地方,但都没有找到有用的解决办法。

我想用Cython把C语言代码嵌入到我的Python程序里。

python setup.py build_ext --inplace

当我运行上面的代码时,它提示说编译器不是gcc-4.0。我现在知道在Lion系统上只安装了gcc-4.2(Python 2.7 32位)。有没有办法可以得到4.0版本的?我试过用fink,但它没有这个版本。(我在Windows和我朋友的雪豹系统的笔记本上运行这个是没问题的)。

如果我试着指定已安装的gcc,我得到的结果是

error: don't know how to compile C/C++ code on platform 'posix' with 'gcc' compiler

为了检查可能的编译器,我运行了:

python setup.py build_ext --inplace --help-compiler

然后得到了这些结果:

List of available compilers:
  --compiler=bcpp     Borland C++ Compiler
  --compiler=cygwin   Cygwin port of GNU C Compiler for Win32
  --compiler=emx      EMX port of GNU C Compiler for OS/2
  --compiler=mingw32  Mingw32 port of GNU C Compiler for Win32
  --compiler=msvc     Microsoft Visual C++
  --compiler=unix     standard UNIX-style compiler

就我所见,我也无法安装这些编译器。

有没有什么办法可以解决这个问题?

3 个回答

0

如果我尝试指定已安装的gcc,我会得到这样的错误信息:

你是怎么指定的?是用环境变量CC吗?

错误:不知道如何在'posix'平台上用'gcc'编译C/C++代码。

这让我觉得你可能传递了 --compiler=gcc,但是正如你在 --help-compiler 的提示信息中看到的,这并不是一个有效的值。

1

你可能在用一个老旧的只支持32位的Python,可能是从python.org上安装的。试着升级到一个64位或32位的Python 2.7.2,可以在这里下载,或者直接使用苹果自带的Python 2.7.1,在Lion系统里可以找到它(路径是/usr/bin/python2.7)。

2

我在虚拟环境中编译 greenlet 时遇到了同样的问题,后来通过手动在 lib/python2.7/config/Makefile 文件中设置想要的编译器解决了这个问题。

撰写回答