Come installare numpy e scipy per Python?


36

Sono stanco di provare a installare numpy e scipy per phyton 2.7.5, ho bisogno di questa versione di Python perché il mio obiettivo finale è installare class ( http://class-code.net/ ) e montepython ( http: // montepython .net / ).

(Ho Ubuntu 12.04)

Quando ho provato a importare numpy o scipy ricevo ogni volta il seguente errore:

$ phyton2.7
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
  import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
  from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
  from type_check import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
  import numpy.core.numeric as _nx
File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
  import multiarray
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined        symbol: PyUnicodeUCS4_AsUnicodeEscapeString

>> import scipy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/scipy/__init__.py", line 78, in <module>
  from numpy import show_config as show_numpy_config
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
  import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
  from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
  from type_check import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
  import numpy.core.numeric as _nx
File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
  import multiarray
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString

Per eliminare l'errore avevo provato:

  1. Soddisfa i requisiti di Python: $ sudo apt-get install build-essential python-dev gfortran
  2. Installa con apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Requisiti di installazione con pip: $ sudo pip install requests
  4. ... e ho provato a installare con pip: $ sudo pip install numpye$ sudo pip install scipy
  5. Ho già l'ambiente var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} l'ultima volta che ho installato numpy e scipy (nella vecchia versione di Ubuntu 10.x) ha funzionato per me.
  6. sudo sh -c "wget http://python-distribute.org/distribute_setup.py -O- | python" sudo sh -c "wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py -O- | python" e quindi installarli entrambi con pip come in (4)

    Ma ora sembra che il server di python-distribute.org non sia attivo . Ho ricevuto il seguente errore:

    http://python-distribute.org/distribute_setup.py
    Resolving python-distribute.org (python-distribute.org)... failed: Name or service not known.
    wget: unable to resolve host address `python-distribute.org'
  7. Avevo anche provato a installare numpy e scipy dal centro software synaptic e Ubuntu

Avevo fallito in ciascuno di questi tentativi e ora non so cosa fare. Mi sto perdendo qualcosa? Come posso ottenere numpy e scipy installati correttamente per Python? Ogni idea sarà apprezzata.

quando io faccio

echo $PYTHONPATH

ottengo

/usr/lib/python2.7/dist-packages

Potresti aggiungere l'output di echo $PYTHONPATHalla tua domanda. Grazie :-)
MadMike,

Forse questo può essere d'aiuto: effbot.org/pyfaq/…
Rmano,

Ok, @MadMike Ho già un problema con $PYTHONPATHcui elimino già le mie definizioni .bashrc, ma ho ancora una definizione da qualche altra parte perché ho ancora la var env $PYTHONPATHper la quale ottengo: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(doppio punto) ...
Jorge,

Ho già corretto scrivendo nel .bashrcfile export PYTHONPATH=/usr/lib/python2.7/dist-packages... Faccio quello che la compilazione UCS4 / UCS2 costruisce come sugest di @Rmano ma ho ancora lo stesso problema in entrambi i casi ...: \
Jorge,

1
I crediti dovrebbero andare su @Rmano. Si è verificato un problema con una versione errata di intorpidimento e scipy. Con la versione aggiornata tutto funziona come previsto.
MadMike,

Risposte:


41

Ok, seguiamo la guida all'installazione :

  1. Dice che hai bisogno di Python 2.7 (che hai già):

    $ python --version
    Python 2.7.4
  2. Quindi dice che è necessario anche il pacchetto numpy, versione> = 1.4.1:

    politica apt-cache python-numpy
    python-numpy:
    Installato: (nessuno)
    Candidato: 1: 1.7.1-1ubuntu1
    Tabella delle versioni:
     1: 1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main pacchetti amd64

    Come puoi vedere, ho disponibile la versione numpy 1.7.1, quindi procediamo con l'installazione:

    sudo apt-get install python-numpy
  3. Ora dice che abbiamo bisogno di cython, controlliamo se quel pacchetto è disponibile:

    politica di apt-cache cython
    Cython:
    Installato: (nessuno)
    Candidato: 0.17.4-0ubuntu1
    Tabella delle versioni:
     0.17.4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main pacchetti amd64

    Lo abbiamo, lo installiamo:

    sudo apt-get install cython

    Si prega di notare che ci sono altri pacchetti che dipendono anche dall'installazione.

  4. Stranamente, abbiamo anche bisogno del modulo scipy:

    sudo apt-get install python-scipy
  5. Test . Apri Python in un terminale e digita quanto segue:

    $ python
    Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
    [GCC 4.7.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import numpy
    >>> import scipy
    >>> import cython
    >>> exit()

    Quanto sopra, deve essere senza errori. Se qualcosa è andato storto, vai su e leggi di nuovo la guida, hai dimenticato / saltato un passaggio.

  6. Scaricando i sorgenti di CLASS dalla loro pagina, vai alla directory nel terminale e decomprimilo e fallo:

    cd dove / the / tar / è
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    rendere

    Qui aspetteremo fino al completamento. Una volta fatto questo, andiamo nella directory di Python e iniziamo la magia. Senza spostarti dalle directory esegui questo:

    cd python
    build di python setup.py
    python setup.py install --user

    Ora abbiamo CLASS installato nella nostra directory utente. Dovremmo testarlo!

    python
    Python 2.7.4 (default, Sep 26 2013, 03:20:26)
    [GCC 4.7.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from classy import Class
    >>> exit()

    Fino a qui è tutto bello e avvolgente.

  7. Ora è la verità, scarica tarball monthypython nella tua directory di codice:

    cd ~
    codice mkdir
    codice cd
    wget https://www.dropbox.com/s/l7mnhwsktp1m8b5/montepython_v1.2.5.tar.bz2?dl=1 -O montepython_v1.2.5.tar.bz2
    tar jxf montepython_v1.2.5.tar.bz2

    Nelle istruzioni di installazione ci sono alcune note che non sono rilevanti in questo caso particolare (una nuova installazione) ma può essere importante quando aggiorni montepython.

  8. Questo cambiamento è importante. Ricordi dove hai installato CLASS? Ora dovresti dire a Monte Python dov'è. Nel mio caso /home/braiam/src/class_v2.0.2/class, il tuo potrebbe essere diverso. Puoi usarlo findper cercarlo:

    find ~ -name class -print

    Bene, ora modifico il default.conffile usando quello che vuoi (userò nano) e modifico il rootpercorso, quindi il file completo sarà simile a:

    # Fill in the relevant path to your personal distribution. 
    # If you create a new file out of this one, please remember to call
    # MontePython.py with the option '-conf my.conf'
    
    # At minimum, this file should contain one line:
    # ** path['cosmo'] =  path to the cosmological code you are using. Note, if you are
    # using a modified version of class, be sure that the path contains the word
    # class, otherwise the code might not recognise it.
    
    # If you want to use a data folder different from the one present in the folder
    # you are executing the code, please also add:
    # ** path['data']  =  /path/to/the/other/data/
    
    root = '/home/braiam/src/class_v2.0.2/'
    
    path['cosmo']           = root+'/class/'

    Salva il file ed esci.

  9. Prova montepython! Se tutto andava bene, dovresti essere in grado di eseguire code/MontePython.py --helpnella tua directory montepythong e tutto dovrebbe funzionare:

    ~ / src / montepython $ code / MontePython.py --help
    utilizzo: MontePython.py [-h] [-N numero di passaggi] [-o cartella di output]
                      [-p input param file] [-c input cov matrix]
                      [-j metodo di salto] [-f fattore di salto]
                      [-conf configuration file] [-chain_number chain number]
                      [-r restart from chain] [-bf restart from best fit file]
                      [-info [informazioni di calcolo del file desiderato [informazioni di calcolo del file desiderato ...]]]
                      [-bins numero desiderato di bin, il valore predefinito è 20] [-no_mean]
                      [-comp cartella di confronto]
                      [-extra plot file per esigenze personalizzate] [-noplot] [-all]
                      [-ext extension extension per il file di output]
                      [-fontsize dimensione del carattere desiderata, il valore predefinito è 15]
                      [-ticksize ticksize desiderato, il valore predefinito è 13]
    
    Monte Python, un codice Monte Carlo in Python

    argomenti opzionali: -h, --help mostra questo messaggio di aiuto ed esce -N numero di passaggi -o cartella di output -p file param di input -c matrice cov di input -j metodo di salto -f fattore di salto -conf file di configurazione -chain_number numero catena -r riavvio dalla catena -bf si riavvia dal file più adatto -info [informazioni di calcolo del file desiderato [informazioni di calcolo del file desiderato ...]] -bins numero desiderato di bin, il valore predefinito è 20 -nessun significato -comp cartella di confronto -extra trama per esigenze personalizzate -noplot -tutti -ext estensione dell'estensione per il file di output -fontsize dimensione del carattere desiderata, il valore predefinito è 15 -ticksize ticksize desiderato, il valore predefinito è 13

Con questo, hai Montepython installato e pronto a partire!


grazie per la tua risposta. Ovviamente, come primo passo seguo la guida all'installazione fornita da montepython, sfortunatamente rimango bloccato nel tuo passaggio (5) perché Python non è riuscito a trovare scipy / numpy. Ecco perché ho provato passaggi alternativi.
Jorge,

1
@JorgeMastache dovresti pulire le tue librerie, forse hai incasinato da qualche parte e Python sta cercando di usarlo. Usa un nuovo utente (se non l'hai usato sudo) o fai sudo make uninstallo comunque i programmi vengono disinstallati.
Braiam,

Sono stata la prima volta l'installazione in un nuovo ubunutu (nuovo computer). Voglio solo avvertire un altro utente solo di stare attenta a disinstallare il pacchetto relativo a Python perché può rovinare le tue librerie Ubuntu-desktop o matematiche. Riesco già a installare montepython riconfigurando / make python e usando i miei passi (1) e (6) per installare numpy e scipy, grazie per le risposte.
Jorge,

1
@JorgeMastache che sarà un dolore da mantenere, ma ok.
Braiam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.