Wie installiere ich numpy und scipy für Python?


36

Ich bin müde zu versuchen, Numpy und Scipy für Phyton 2.7.5 zu installieren. Ich benötige diese Version von Python, weil es mein letztes Ziel ist, Class ( http://class-code.net/ ) und Montepython ( http: // montepython ) zu installieren .net / ).

(Ich habe Ubuntu 12.04)

Beim Versuch, numpy oder scipy zu importieren, wird jedes Mal die folgende Fehlermeldung angezeigt:

$ 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

Um den Fehler loszuwerden hatte ich versucht:

  1. Erfüllen Sie die Python-Anforderungen: $ sudo apt-get install build-essential python-dev gfortran
  2. Installieren Sie mit apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Installieren voraussetzung mit pip: $ sudo pip install requests
  4. ... und versucht mit pip zu installieren: $ sudo pip install numpyund$ sudo pip install scipy
  5. Ich habe bereits die Umgebungsvariable: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} Das letzte Mal, als ich numpy and scipy (in der älteren Ubuntu-Version 10.x) installiert habe, hat dies bei mir funktioniert.
  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" und dann beide mit pip wie in (4) installieren

    Aber jetzt scheint es, dass der Server von python-distribute.org nicht funktioniert . Ich habe folgende Fehlermeldung erhalten:

    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. Ich hatte auch versucht, Numpy und Scipy von Synaptic und Ubuntu Software Center zu installieren

Ich war bei jedem dieser Versuche gescheitert und weiß jetzt nicht, was ich tun soll. Vermisse ich etwas? Wie kann ich numpy und scipy für Python richtig installieren lassen? Jede Idee wird geschätzt.

wenn ich es tue

echo $PYTHONPATH

Ich bekomme

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

Könnten Sie bitte die Ausgabe von echo $PYTHONPATHzu Ihrer Frage hinzufügen . Vielen Dank :-)
MadMike

Vielleicht kann dies helfen: effbot.org/pyfaq/…
Rmano

Ok, @MadMike Ich habe ein Problem damit, dass $PYTHONPATHich meine Definitionen bereits in gelöscht habe .bashrc, aber ich habe immer noch eine Definition an einer anderen Stelle, weil ich immer noch die Umgebungsvariable habe, $PYTHONPATHfür die ich Folgendes erhalte: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(Doppelpunkt) ...
Jorge

Ich korrigiere bereits, indem ich in .bashrcDatei schreibe export PYTHONPATH=/usr/lib/python2.7/dist-packages... Ich mache das, was der UCS4-Build / UCS2-Build als @Rmano sugest, aber ich bekomme in beiden Fällen immer noch das gleiche Problem ...: \
Jorge

1
Credits sollten an @Rmano gehen. Es gab ein Problem mit einer fehlerhaften Version von numpy und scipy. Mit der aktualisierten Version funktioniert alles wie erwartet.
MadMike

Antworten:


41

Ok, folgen wir der Installationsanleitung :

  1. Es heißt, Sie brauchen Python 2.7 (das Sie bereits haben):

    $ python --version
    Python 2.7.4
    
  2. Dann heißt es, dass Sie auch das numpy-Paket benötigen, Version> = 1.4.1:

    Apt-Cache-Richtlinie python-numpy
    python-numpy:
    Installiert: (keine)
    Kandidat: 1: 1.7.1-1ubuntu1
    Versionstabelle:
     1: 1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64-Pakete

    Wie Sie sehen können, habe ich numpy Version 1.7.1 zur Verfügung. Lassen Sie uns mit der Installation fortfahren:

    sudo apt-get install python-numpy
  3. Jetzt heißt es, dass wir Cython brauchen, lassen Sie uns überprüfen, ob das Paket verfügbar ist:

    Apt-Cache-Richtlinien-Cython
    Cython:
    Installiert: (keine)
    Kandidat: 0.17.4-0ubuntu1
    Versionstabelle:
     0,17,4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64-Pakete

    Wir haben es, wir installieren es:

    sudo apt-get install cython

    Bitte beachten Sie, dass auch andere Pakete mit Abhängigkeiten installiert werden.

  4. Seltsamerweise brauchen wir auch das Scipy-Modul:

    sudo apt-get install python-scipy
  5. Testen . Öffnen Sie Python in einem Terminal und geben Sie Folgendes ein:

    $ 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()
    

    Das obige muss fehlerfrei sein. Wenn etwas schief gelaufen ist, lesen Sie die Anleitung noch einmal, Sie haben einen Schritt vergessen / übersprungen.

  6. Laden Sie die CLASS-Quellen von ihrer Seite herunter, wechseln Sie in das Verzeichnis im Terminal, entpacken Sie es und erstellen Sie es:

    cd wo / der / teer / ist
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    machen

    Hier werden wir warten, bis der Vorgang abgeschlossen ist. Sobald dies erledigt ist, gehen wir zum Python-Verzeichnis und starten die Magie. Führen Sie Folgendes aus, ohne von Verzeichnissen zu wechseln:

    CD-Python
    python setup.py build
    python setup.py installiere --user

    Jetzt haben wir CLASS in unserem Benutzerverzeichnis installiert. Wir sollten es testen!

    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()
    

    Bis hier ist alles schön gemütlich.

  7. Laden Sie jetzt den Monatspython-Tarball in Ihr Codeverzeichnis herunter:

    cd ~
    mkdir code
    CD-Code
    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

    In den Installationsanweisungen sind einige Hinweise enthalten , die in diesem speziellen Fall (einer Neuinstallation) nicht relevant sind. Dies kann jedoch wichtig sein, wenn Sie Montepython aktualisieren.

  8. Diese Änderung ist wichtig. Erinnerst du dich, wo du CLASS installiert hast? Jetzt solltest du Monte Python sagen, wo das ist. In meinem Fall /home/braiam/src/class_v2.0.2/classkönnte es anders sein. Sie können verwenden find, um danach zu suchen:

    find ~ -name class -print

    Nun ändere ich die default.confDatei mit was auch immer du willst (ich verwende nano) und ändere den rootPfad, so dass die komplette Datei so aussieht:

    # 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/'
    

    Speichern Sie die Datei und beenden Sie sie.

  9. Testen Sie Montepython! Wenn alles code/MontePython.py --helpin Ordnung wäre , müssten Sie in Ihrem montepythong-Verzeichnis laufen und alles sollte laufen:

    ~ / src / montepython $ code / MontePython.py --help
    Verwendung: MontePython.py [-h] [-N Anzahl der Schritte] [-o Ausgabeordner]
                      [-p Eingabeparam.-Datei] [-c Eingabecov.-Matrix]
                      [-j Springmethode] [-f Springfaktor]
                      [-conf configuration file] [-chain_number chain number]
                      [-r Neustart von der Kette] [-bf Neustart von der bestangepassten Datei]
                      [-info [Informationen zur gewünschten Datei berechnen ...]]
                      [-bins gewünschte Anzahl von Behältern, Standard ist 20] [-no_mean]
                      [-comp Vergleichsordner]
                      [-extra Plot-Datei für benutzerdefinierte Bedürfnisse] [-noplot] [-all]
                      [-ext change extension für die Ausgabedatei]
                      [-Fontsize gewünschte Schriftgröße, Standard ist 15]
                      [-Ticksize gewünschte Ticksize, Standard ist 13]
    
    Monte Python, ein Monte-Carlo-Code in Python

    optionale Argumente: -h, --help Diese Hilfemeldung anzeigen und beenden -N Anzahl der Schritte -o Ausgabeordner -p Eingabeparameterdatei -c Eingabe Cov Matrix -j Springmethode -F Sprungfaktor -conf Konfigurationsdatei -chain_number Kettennummer -r Neustart von der Kette -bf Neustart von der am besten passenden Datei -info [Informationen zur gewünschten Datei berechnen ...]] -bins gewünschte Anzahl von Behältern, Standard ist 20 -no_mean -comp Vergleichsordner -Extra-Plot-Datei für benutzerdefinierte Bedürfnisse -nicht viel -alle -ext Ändere die Erweiterung für die Ausgabedatei -Fontsize gewünschte Schriftgröße, Standard ist 15 -Ticksize gewünschte Ticksize, Standard ist 13

Damit haben Sie montepython installiert und können loslegen!


Danke für deine Antwort. Natürlich folge ich als ersten Schritt der von montepython gegebenen Installationsanleitung, aber leider bleibe ich bei deinem Schritt (5) hängen, weil Python scipy / numpy nicht finden konnte. Deshalb habe ich alternative Schritte ausprobiert.
Jorge

1
@JorgeMastache du solltest deine Bibliotheken bereinigen, vielleicht hast du irgendwo etwas durcheinander gebracht und Python versucht es zu benutzen. Verwenden Sie einen neuen Benutzer (falls Sie ihn nicht verwendet haben sudo) oder tun Sie dies, sudo make uninstalloder die Programme werden deinstalliert.
Braiam

Ich war das erste Mal in einem neuen Ubunutu (neuer Computer) installiert. Ich möchte nur andere Benutzer warnen, nur um vorsichtig mit der Deinstallation von python-bezogenen Paketen umzugehen, da dies zu Problemen mit Ihrem Ubuntu-Desktop oder Ihren Mathematikbibliotheken führen kann. Ich schaffe es bereits, Montepython zu installieren, indem ich Python neu konfiguriere / erstelle und meine Schritte (1) und (6) verwende, um Numpy und Scipy zu installieren. Vielen Dank für Ihre Antworten.
Jorge

1
@JorgeMastache das wird ein schmerz zu pflegen sein, aber ok.
Braiam
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.