【问题标题】:how to install Cython on lion如何在狮子上安装 Cython
【发布时间】:2012-02-25 12:27:56
【问题描述】:

我正在尝试在 lion 上安装 cython,但这就是我得到的:

$ export CC=gcc-4.2
$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
$ python setup.py install 
error: command 'gcc-4.2' failed with exit status 255

我不确定llvm-gcc是否正确,我安装了Xcode4.1但它仍然不起作用。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 看看 Homebrew (mxcl.github.com/homebrew)。 brew install python --framework
  • 我有狮子。我下载了 Cython,然后运行了 python setup.py install。它编译和安装很好,没有任何额外的导出或更改 PATH 或 CC 或其他任何东西。

标签: python gcc cython llvm-gcc


【解决方案1】:

您至少需要调整 PATH 和 LD_LIBRARY_PATH 环境变量。

PATH 环境变量也需要包含/Developer/usr/bin。 我已经编写了一个 ~/.bash_devenv 文件,每次我想在 2010 年中期的 Mac Pro 上编译 C 代码时都会获取该文件(从 Snow Leopard 升级到 Lion 再到 Lion Server)。

$ cat ~/.bash_devenv

ARCHFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7"
LDFLAGS="-L/Developer/SDKs/MacOSX10.7.sdk/usr/lib -L/usr/lib"
CFLAGS="-I/Developer/SDKs/MacOSX10.7.sdk/usr/include -I/usr/include -O2 -pipe -fomit-frame-pointer"
CPPFLAGS="-I/usr/include/ -I/Developer/SDKs/MacOSX10.7.sdk/usr/include"
LD_LIBRARY_PATH="/Developer/SDKs/MacOSX10.7.sdk/usr/lib/gcc/i686-apple-darwin11/4.2.1/x86_64/:$LD_LIBRARY_PATH"

case $1 in
    32)
        export LDFLAGS="-arch i386 -arch x86_64 $LDFLAGS"
        export FFLAGS="-m i386 -m x86_64"
        export CFLAGS="-arch i386 -arch x86_64 $CFLAGS"
        export CPPFLAGS="-arch i386 -arch x86_64 $CPPFLAGS"
        export LD_LIBRARY_PATH="/Developer/SDKs/MacOSX10.7.sdk/usr/lib/gcc/i686-apple-darwin11/4.2.1/:$LD_LIBRARY_PATH"
    ;;
    64)
        export LDFLAGS="-arch x86_64 $LDFLAGS"
        export FFLAGS="-m x86_64"
        export CFLAGS="-arch x86_64 $CFLAGS"
        export CPPFLAGS="$CPPFLAGS"
        export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/Developer/SDKs/MacOSX10.7.sdk/usr/lib/gcc/i686-apple-darwin11/4.2.1/"
    ;;
    *)
        export LDFLAGS="$LDFLAGS"
        export FFLAGS="-m x86_64"
        export CFLAGS="-L/Developer/SDKs/MacOSX10.7.sdk/usr/lib -L/usr/lib -arch x86_64 $CFLAGS"
        export CPPFLAGS="$CPPFLAGS"
        export LD_LIBRARY_PATH="/usr/lib:/Developer/SDKs/MacOSX10.7.sdk/usr/lib:$LD_LIBRARY_PATH"
    ;;
esac    

### GLOBALS ###

export PATH="/Developer/usr/bin:/Developer/usr/local/bin:$PATH"


一些 CFLAGS 可能是多余的(-I/path/to/dir 指令),但它应该主要与任何运行 Lion 和 XCode 的机器相关。

我刚刚在 Lion 上成功编译了 Cython。但它失败了,在我之前:
1) 输入命令source ~/.bash_devenv
2) 使用了我手动编译的自定义版本的 Python。
  即默认安装 Python 时 cython 编译失败,因为它找不到 Python.h。如果你知道在哪里可以找到系统 Python.h 并想使用系统 Python(如果你想构建自己的 numpy 或其他库,不推荐),将包含 Python.h 的目录添加到 CPPFLAGS;例如CPPFLAGS+=" -I/usr/local/include".

或者,下载 Enthought 的 Python 发行版,其中包括 cython,以及许多其他有用的库,包括他们内部开发的开源代码(cwrap 是我知道的一个模块,旨在手动工作-与cython一起使用)。

安全

【讨论】:

    【解决方案2】:

    sudo CC=llvm-gcc-4.2 python setup.py install

    对我来说很好用!找到它

    http://comments.gmane.org/gmane.comp.python.cython.user/8461

    最好的!

    【讨论】:

    • 这是在开玩笑吗?您不应该将sudo 用于此类事情。此外,您指向的线程不包含sudo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2013-09-24
    相关资源
    最近更新 更多