tutorial - scipy python




come installare numpy e scipy su OS X? (6)

Ciao ragazzi, sono nuovo per il Mac, quindi per favore abbiate pazienza con me.

Sto usando snow leopard 10.6.4 al momento.

Voglio installare numpy e scipy, quindi ho scaricato i file dmg python2.6, numpy e scipy dal loro sito ufficiale. Tuttavia, sto avendo problemi con l'importazione numpy:

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

Qualcuno può far luce su questo problema?>


Ho avuto lo stesso messaggio di errore quando stavo provando il mio numpy e scipy appena installato in python2.7 su Mac OSX 10.6.8. Più tardi ho scoperto che c'erano due .dmg per python2.7:

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

Era il pacchetto in 10.3.dmg che mi dava il messaggio di errore su multiarray.so. Dopo aver installato quello in 10.6.dmg, mi sono liberato di questo messaggio di errore.


Ho avuto problemi con Numpy fino a quando ho installato in un virtualenv, ora non ho alcun problema. Suggerirei sicuramente di provarlo.


Il modo migliore per gestire i pacchetti su OS X è Fink (non MacPorts :)). Hanno un buon supporto per Python, NumPy e SciPy.

Perché usare un gestore di pacchetti? perché non avrai solo NumPy e SciPy, ma anche molti altri programmi di cui avrai inevitabilmente bisogno, tutti con un singolo punto di accesso (in pratica il comando di installazione del gestore). Questo è molto più conveniente di dover cercare specifiche versioni compilate dei programmi che si desidera installare.

Perché Fink? perché Fink è reputamente più stabile di MacPorts e ha molti più pacchetti.


Nel caso questo sia utile a qualcuno, ho anche avuto problemi nell'installare i binari di numpy su OSX. L'installatore si è lamentato dicendomi che:

Non è possibile installare numpy 1.5.1 su questo volume. numpy richiede System Python 2.6 da installare.

Per farla breve: "System Python" significa "python da python.org " e "2.6" significa davvero 2.6, non 2.5 e non 2.7. Quindi, vai e trova l'installer per la versione di python che numpy vuole e poi tutto è grande.

Al mio primo tentativo ho capito l'errore di Numpy dicendomi che avevo un python obsoleto, quindi ho ottenuto l'ultima versione (2.7 alla volta), ma numpy continuava a lamentarsi lo stesso. Solo dopo un'attenta lettura del messaggio ho capito che voleva davvero 2.6 e non altre versioni. Ho eliminato la prima installazione (trovata in /Library/Frameworks/Python.framework ) e successivamente installato 2.6. Finalmente numpy è stato felice di installare e tutto andava bene.


Sembra che si stia tentando di utilizzare una libreria a 32 bit da Python a 64 bit. Sembra che ci sia un Numpy a 64 bit non ufficiale disponibile per Snow Leopard .

EDIT: The Python 2.6 .dmg disponibile qui è davvero a 32 bit. (In particolare, è un binario universale contenente entrambe le versioni i386 e ppc). Lo stesso vale per le versioni regolari di dp e numpy e scipy disponibili qui . (Come faccio a saperlo? Vedi sotto!) Quindi se usi queste pubblicazioni insieme dovresti stare bene.

Ma non stai bene - quindi suppongo che tu non stia usando la versione di Python dal 2.6 .dmg che hai scaricato. Se stai eseguendo uno script Python eseguibile, ad esempio:

$ ./my-script.py

quindi potresti provare a specificare il Python che stai usando esplicitamente sulla riga di comando. Sembra che l'installazione di .dmg di MacPython in / usr / local / bin / python, quindi prova:

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

Qualche gioia?

Come ho determinato l'architettura il contenuto di questi file .dmg è stato creato per ...

  1. Monta il file .dmg (ad esempio fai doppio clic per aprire un volume)
  2. Usa gunzip e pax per decomprimere il contenuto del pacchetto in una directory locale, ad esempio:

    $ 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. Usa il file per esaminare i file binari nel contenuto del pacchetto

    $ 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

per snow leopard 64 bit ho usato il seguente uomo http://blog.hyperjeff.net/?p=160 appena eseguito e sei a posto. Guarda anche i commenti (nuovo AMD ...)

la costruzione di numpy funziona sempre. ma per scipy è necessario fornire i file di configurazione numpy. installa gfortran .....





scipy