2012-06-29 1 views
0

После долгих усилий я наконец получил matplotlib и все его зависимости, работая гармонично на Snow Leopard 10.6.8. Теперь я хотел бы немного настроить его конфигурацию, чтобы позволить мне использовать мою 32-битную установку wxPython в качестве ее бэкэнд. Проблема в том, что numpy (требуется matplotlib) не будет импортироваться, когда я использую 32-разрядную установку Python 2.7.3 (версия python.org). Googling в течение часа или около того привело меня к мысли, что numpy можно построить и установить как 32-битный, указав CFLAGS и LDFLAGS, не связанные с setup.py. Я не понимаю, что делают эти флаги, и неудивительно, что я не успел их использовать. Это то, что я пытался внутри скачанной Numpy папки:Как установить 32-разрядную версию numpy

$ CLFLAGS=-m32 LDFLAGS=-m32 python setup.py install 

Я получаю несколько сообщений об ошибках, но 64-битная совместимая версия NumPy это прибывает в моей папке sitepackages. Когда я использую 32-битный интерпретатор, однако я получаю сообщение об ошибке:

ImportError: dynamic module does not define init function (initmultiarray) 

Правильно ли я думать, что я могу построить 32-битную NumPy?

ответ

0

Вы можете попробовать использовать бесплатную версию EPD (или полную версию бесплатно, если вы в научных кругах):

http://www.enthought.com/products/epd_free.php/

Это имеет 32-разрядную версию для макинтош с со всеми из ключевые научные пакеты стека, включая scipy, numpy и matplotlib.

+0

В какой-то момент в прошлом, я думаю, что у меня действительно идти с версией EPD, и я также попытался установить все эти пакеты с MacPorts. Я не помню, чтобы сталкивались с какими-либо проблемами с ними, но часть причин для их индивидуального подхода - получить немного больше информации о гайках и болтах установки в Unix/OS X –

4

Я только что провел пару дней, глядя вокруг и потянув меня за волосы, так что я думал, что я здесь, чтобы внести свой вклад, что я нашел ...

У меня была та же проблема, но только установка флагов не будет работать на (но это действительно необходимо) ... В моем случае у меня есть отдельная 32-битная версия python, поэтому я сделал:

CFLAGS = "- m32" LDFLAGS = "- m32"/util/linux32/bin/python setup.py install --prefix =/util/science/gfortran-4.4.6/linux32/

(не беспокойтесь о моем gfortran в префиксе, мне повезло, что мне пришлось тестировать разные компиляторы .. ;))

, но тогда я получаю сообщение об ошибке, последняя строка будет сказать: «RuntimeError: Broken Набор инструментов: не может связать простую программу C»

, но если я прокручивается вверх я имел:

GCC - _configtest.o -o нитей _configtest

_configtest.o: не мог читать символы: файл в неправильном формате

collect2: л.д. возвращается статус 1 выхода

_configtest.o: не мог читать символы: файла в неправильном формате

collect2: л.д. возвращается 1 выездного статус

провала.

удаления: _configtest.c _configtest.o

и как вы можете видеть, нет "-m32" флаг в этот призыв к НКУ ...

Я отследил его до установки distutils; для меня там: /util/linux32/lib/python2.7/distutils/ccompiler.py

и, вероятно, более элегантное решение, чем это, как получение значения cflags напрямую, но я не питон девушка так не уверена, как ..;) Я, вероятно, мог бы это выяснить, но все, что мне сейчас волнует, - это, наконец, установить numpy в 32-битном режиме. так или иначе ... строка 693 этого кода на Python, я изменил

runtime_library_dirs=None, debug=0, extra_preargs=None, 

в

runtime_library_dirs=None, debug=0, extra_preargs=['-m32'], 

(в тыс e function link_executable; в случае, если у вас есть другая версия python ...)

и voila ... numpy установлен успешно на 64-битной машине в 32-битном режиме. Предполагаю, что это будет работать и для других модулей, так как это связано с distutils, а не numpy ..;)

надеюсь, что это может помочь кому-то в будущем и сэкономить время!

Ева-Мари