Как установить NumPy и Scipy на OS X? - PullRequest
6 голосов
/ 24 декабря 2010

Эй, ребята, я новичок в Mac, поэтому, пожалуйста, потерпите меня.

Сейчас я использую снежного барса 10.6.4.

Я хочу установить numpy и scipy, поэтому я скачал dmg-файлы python2.6, numpy и scipy с их официального сайта. Однако у меня возникла проблема с импортом numpy:

Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/numpy/core/multiarray.so: no matching architecture in universal wrapper

Может кто-нибудь пролить свет на эту проблему?>

Ответы [ 8 ]

8 голосов
/ 24 декабря 2010

Звучит так, как будто вы пытаетесь использовать 32-битную библиотеку из 64-битного Python. Похоже, есть неофициальный 64-битный Numpy для Snow Leopard .


EDIT: Python 2.6 .dmg доступен здесь действительно 32-битный. (В частности, это универсальный бинарный файл, содержащий версии i386 и ppc). То же самое верно и для обычных релизов .dmg для numpy и scipy, доступных здесь . (Откуда я знаю? Смотрите ниже!) Так что, если вы используете эти релизы вместе, у вас все будет хорошо.

Но вы не в порядке - так что я предполагаю, что вы не используете версию Python из 2.6 .dmg, которую вы скачали. Если вы запускаете исполняемый скрипт на python, например ::

$ ./my-script.py

тогда вы можете попытаться указать Python, который вы явно используете в командной строке. Похоже, что MacPython .dmg устанавливается в / usr / local / bin / python, поэтому попробуйте:

$ /usr/local/bin/python2.6 myscript.py

Есть радость?


Как я определил архитектуру, для которой создается содержимое этих файлов .dmg ...

  1. Смонтируйте .dmg (т. Е. Дважды щелкните его, чтобы открыть том)
  2. Используйте gunzip и pax для распаковки содержимого пакета в локальный каталог, например ::

    $ mkdir tmp
    $ cd tmp
    $ gunzip -c /Volumes/Universal\ MacPython\ 2.6/MacPython.mpkg/Contents/Packages/PythonUnixTools-2.6.pkg/Contents/Archive.pax.gz | pax
    
  3. Используйте file для проверки двоичных файлов в содержимом пакета

    $ file Versions/2.6/bin/python
    Versions/2.6/bin/python: Mach-O universal binary with 2 architectures
    Versions/2.6/bin/python (for architecture ppc): Mach-O executable ppc
    Versions/2.6/bin/python (for architecture i386):    Mach-O executable i386
    
7 голосов
/ 07 октября 2012

У меня было такое же сообщение об ошибке, когда я пробовал свой недавно установленный numpy и scipy в python2.7 на Mac OSX 10.6.8.Позже я узнал, что существует два .dmg для python2.7:

  • numpy-1.6.2-py2.7-python.org-macosx10.3.dmg
  • numpy-1.6.2-py2.7-python.org-macosx10.6.dmg

Это был пакет в 10.3.dmg, сообщающий мне об ошибке multiarray.so.После установки одного в 10.6.dmg я избавился от этого сообщения об ошибке.

2 голосов
/ 24 декабря 2010

У меня были проблемы с NumPy, пока я не установил в virtualenv, теперь у меня нет никаких проблем. Я определенно предложил бы попробовать это.

1 голос
/ 24 декабря 2010

для снежного барса 64 бит, я использовал следующий человек http://blog.hyperjeff.net/?p=160 просто выполните, и вы готовы идти.Также посмотрите на комментарии (новый AMD ...)

Здание NumPy работает все время.но для scipy вам нужно предоставить файлы конфигурации numpy.установить гфортран .....

0 голосов
/ 07 апреля 2013

Я провел бесчисленные часы, просматривая веб-страницы, пытаясь заставить работать различные пакеты Python в OS X. В конце концов, я обнаружил, что самым простым решением было либо полностью перейти на Ubuntu, либо запустить Ubuntu в Virtualbox из OS X (все бесплатно).

Используя менеджер пакетов Ubuntu, apt-get, практически любой нужный пакет будет работать сразу после одной простой команды установки.Это был огромный порыв, когда я впервые получил работу numpy, scipy и matplotlib менее чем за минуту.

$ sudo apt-get install python-numpy python-scipy python-matplotlib

Я все еще получаю мини-порыв каждый раз, когда делаю это.Не уверены, есть ли пакет debian для модуля, который вы хотите?Как правило, есть, и вы можете искать, скажем, модуль lxml Python с помощью:

$ apt-cache search lxml | grep python
0 голосов
/ 17 января 2011

В случае, если это кому-то пригодится, у меня также были проблемы с установкой двоичных файлов numpy на OSX.Установщик пожаловался, сказав, что:

Вы не можете установить numpy 1.5.1 на этот том.numpy требует System Python 2.6 для установки.

Короче говоря: «Системный Python» означает «python from python.org » и «2.6» означает действительно 2,6, а не 2,5 и не 2,7.Итак, зайдите и найдите инсталлятор для той версии python, которую хочет numpy, и тогда все отлично.

С первой попытки я понял ошибку numpy как указание на то, что у меня устаревший python, поэтому я получил последнюю версиюверсия (2.7 в то время), но numpy продолжал жаловаться все равно.Только после внимательного прочтения сообщения я понял, что для действительно требуется 2.6, а не для какой-либо другой версии.Я удалил первую установку (найденную в /Library/Frameworks/Python.framework) и установил 2.6 после этого.Наконец Numpy был счастлив установить и все было хорошо.

0 голосов
/ 24 декабря 2010

Нет необходимости использовать MacPorts или Fink.

Используйте установщик Python 2.6 и этот установщик Numpy . Я думаю, вам нужно сначала установить Numpy, затем установить Scipy , и все будет работать автоматически. Я помню, что какое-то время мне нужно было явно добавить путь в каталог site-packages вверху моих скриптов, чтобы Python знал, где искать.

0 голосов
/ 24 декабря 2010

Лучший способ управлять пакетами в OS X - Fink (не MacPorts :)). Они имеют хорошую поддержку Python, NumPy и SciPy.

Зачем использовать менеджер пакетов? потому что вы получите не только NumPy и SciPy, но и множество других программ, которые вам неизбежно понадобятся, и все с одной точкой входа (в основном, это команда установки менеджера). Это гораздо удобнее, чем искать определенные скомпилированные версии программ, которые вы хотите установить.

Почему Финк? потому что Fink считается более стабильным, чем MacPorts, и имеет гораздо больше пакетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...