Не могу собрать Cython / distutils в OS X Lion. - PullRequest
3 голосов
/ 10 декабря 2011

Я везде искал решение в Интернете, но не нашел ничего полезного.

Я пытаюсь использовать Cython для встраивания кода C в мои программы на python.

python setup.py build_ext --inplace

Когда я запускаю вышеизложенное, он жалуется на компилятор, а не на gcc-4.0.Теперь я знаю, что на Lion установлен только gcc-4.2 (python 2.7 32 bit).Есть ли в любом случае получение 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 ]

2 голосов
/ 23 сентября 2012

У меня была такая же проблема при компиляции greenlet в virtualenv, решаемая вручную установкой нужного компилятора в файл lib/python2.7/config/Makefile.

1 голос
/ 10 декабря 2011

Вы, вероятно, используете более старый 32-битный Python, возможно, установленный с python.org.Попробуйте обновить до 64- / 32-битного Python 2.7.2 здесь или просто используйте поставляемый Apple Python 2.7.1 в Lion (/usr/bin/python2.7).

0 голосов
/ 12 декабря 2011

Если я попытаюсь указать установленный gcc, я получу

Как вы это указали? Использование переменной среды CC?

ошибка: не знаю, как скомпилировать код C / C ++ на платформе posix с помощью компилятора gcc

Заставляет меня думать, что вы передали --compiler=gcc, но, как вы видите в сообщении --help-compiler, это недопустимое значение.

...