Jak zainstalować Numpy i Scipy dla Pythona?

36

Jestem zmęczony próbą zainstalowania numpy i scipy dla phyton 2.7.5, potrzebuję tej wersji Pythona, ponieważ moim ostatecznym celem jest zainstalowanie klasy ( http://class-code.net/ ) i montepython ( http: // montepython .net / ).

(Mam Ubuntu 12.04)

Kiedy próbowałem zaimportować numpy lub scipy, za każdym razem pojawia się następujący błąd:

$ 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

Aby pozbyć się błędu, próbowałem:

  1. Spełnij wymagania dla Pythona: $ sudo apt-get install build-essential python-dev gfortran
  2. Zainstaluj za pomocą apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Wymagania instalacyjne z pipem: $ sudo pip install requests
  4. ... i próbował zainstalować za pomocą pip: $ sudo pip install numpyi$ sudo pip install scipy
  5. Mam już środowisko var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} ostatnia instalacja Numpy i Scipy (w starszej wersji Ubuntu 10.x) działało dla mnie.
  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" a następnie zainstaluj oba z pipem jak w (4)

    Ale teraz wygląda na to, że serwer python-distribute.org jest wyłączony. Wystąpił następujący błąd:

    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. Próbowałem także zainstalować Numpy i Scipy z centrum oprogramowania Synaptic i Ubuntu

Nie udało mi się przy każdej z tych prób, a teraz nie wiem, co robić. Czy coś brakuje? Jak mogę poprawnie zainstalować Numpy i Scipy dla Pythona? Każdy pomysł zostanie doceniony.

kiedy robię

echo $PYTHONPATH

dostaję

/usr/lib/python2.7/dist-packages
Jorge
źródło
Mógłbym dodać wynik echo $PYTHONPATHdo twojego pytania. Dziękuję :-)
MadMike,
Może to może pomóc: effbot.org/pyfaq/…
Rmano
Ok, @MadMike Mam problem z tym, $PYTHONPATHże już usunąłem swoje definicje .bashrc, ale nadal mam definicję gdzie indziej, ponieważ nadal mam zmienną env, $PYTHONPATHza którą otrzymuję: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(podwójny dwukropek) ...
Jorge
Już poprawiam, pisząc w .bashrcpliku export PYTHONPATH=/usr/lib/python2.7/dist-packages... Robię to, co kompilacja UCS4 / UCS2 jako sugestia @Rmano, ale nadal mam ten sam problem w obu przypadkach ...: \
Jorge
1
Kredyty powinny trafić do @Rmano. Wystąpił problem z błędną wersją numpy i scipy. W zaktualizowanej wersji wszystko działa zgodnie z oczekiwaniami.
MadMike,

Odpowiedzi:

41

Ok, postępujmy zgodnie z instrukcją instalacji :

  1. Mówi, że potrzebujesz Pythona 2.7 (który już masz):

    $ python --version
    Python 2.7.4
  2. Następnie mówi, że potrzebujesz również pakietu numpy, wersja> = 1.4.1:

    polityka apt-cache python-numpy
    python-numpy:
    Zainstalowano: (brak)
    Kandydat: 1: 1.7.1-1ubuntu1
    Tabela wersji:
     1: 1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 Packages

    Jak widać, mam dostępną wersję Numpy 1.7.1, więc przejdźmy do jej instalacji:

    sudo apt-get install python-numpy
  3. Teraz mówi, że potrzebujemy cytonu, sprawdźmy, czy ten pakiet jest dostępny:

    cyton zasad apt-cache
    cyton:
    Zainstalowano: (brak)
    Kandydat: 0,17,4-0ubuntu1
    Tabela wersji:
     0.17.4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 Packages

    Mamy to, instalujemy:

    sudo apt-get install cython

    Proszę zauważyć, że instalowane są także inne pakiety zależne.

  4. Co dziwne, potrzebujemy również modułu Scipy:

    sudo apt-get install python-scipy
  5. Testowanie . Otwórz python w terminalu i wpisz następujące polecenie:

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

    Powyższe musi być bezbłędne. Jeśli coś poszło nie tak, idź w górę i przeczytaj ponownie przewodnik, zapomniałeś / pominąłeś krok.

  6. Pobierając źródła CLASS z ich strony, przejdź do katalogu w terminalu, rozpakuj go i zrób to:

    cd gdzie / the / tar / is
    tar zxf klasa_v2.0.2.tar.gz
    cd klasa_v2.0.2
    robić

    Tutaj poczekamy na zakończenie. Gdy to zrobisz, przejdziemy do katalogu python i uruchomimy magię. Bez przechodzenia z katalogów uruchom to:

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

    Teraz mamy KLASĘ zainstalowaną w naszym katalogu użytkowników. Powinniśmy to przetestować!

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

    Do tej pory wszystko jest przytulne.

  7. Teraz czas na prawdę, pobierz tarball Monthypython do katalogu kodów:

    cd ~
    kod mkdir
    kod 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

    W instrukcjach instalacji znajduje się kilka uwag , które nie są istotne w tym szczególnym przypadku (nowa instalacja), ale może być ważne podczas aktualizacji montepython.

  8. Ta zmiana jest ważna. Pamiętasz, gdzie zainstalowałeś CLASS? Teraz powinieneś powiedzieć Monte Python, gdzie to jest. W moim przypadku /home/braiam/src/class_v2.0.2/classtwój może być inny. Możesz użyć, findaby poszukać:

    find ~ -name class -print

    Cóż, teraz modyfikuję default.confplik, używając tego, co chcesz (użyję nano) i modyfikuję rootścieżkę, aby cały plik wyglądał następująco:

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

    Zapisz plik i wyjdź.

  9. Przetestuj montepython! Jeśli wszystko było w porządku, powinieneś być w stanie uruchomić code/MontePython.py --helpw swoim katalogu montepythong i wszystko powinno działać:

    ~ / src / montepython $ code / MontePython.py --help
    użycie: MontePython.py [-h] [-N liczba kroków] [-o folder wyjściowy]
                      [-p wejściowy plik parametrów] [-c wejściowa macierz cov]
                      [-j metoda skakania] [-f współczynnik skoku]
                      [plik konfiguracyjny -conf] [numer łańcucha -chain]
                      [-r restart z łańcucha] [-bf restart z pliku najlepszego dopasowania]
                      [-info [oblicz informacje o żądanym pliku [oblicz informacje o żądanym pliku ...]]]
                      [-bins pożądaną liczbę binów, domyślnie jest to 20] [-no_mean]
                      [-comp folder porównawczy]
                      [-extra plik wykresu na potrzeby niestandardowe] [-noplot] [-all]
                      [-rozszerzenie zmiany tekstu dla pliku wyjściowego]
                      [-fontsize żądany rozmiar czcionki, domyślnie 15]
                      [-typowy żądany rozmiar tyknięcia, domyślnie 13]
    
    Monte Python, kod Monte Carlo w Pythonie

    opcjonalne argumenty: -h, --help pokaż ten komunikat pomocy i wyjdź -N liczba kroków -o folder wyjściowy -p wejściowy plik parametrów -c wejściowa macierz cov -j metoda skakania -f współczynnik skoku -conf plik konfiguracyjny -numer_ łańcuchu -r uruchom ponownie z łańcucha -bf uruchom ponownie od pliku najlepszego dopasowania -info [oblicz informacje o żądanym pliku [oblicz dane o żądanym pliku ...]] -bins pożądana liczba binów, domyślnie 20 -bez znaczenia -comp folder porównawczy -extra plik wykresu do własnych potrzeb -noplot -wszystko -ext zmiana rozszerzenia pliku wyjściowego -fontsize żądany rozmiar czcionki, domyślnie 15 -ticksize pożądany tyknięcie, domyślnie 13

Dzięki temu masz zainstalowany montepython i gotowy do użycia!

Braiam
źródło
dzięki za odpowiedź. Oczywiście jako pierwszy krok postępuję zgodnie z instrukcją instalacji podaną przez montepython, niestety utknąłem w twoim kroku (5), ponieważ python nie mógł znaleźć scipy / numpy. Dlatego próbowałem alternatywnych kroków.
Jorge
1
@JorgeMastache powinieneś wyczyścić swoje biblioteki, może gdzieś coś pomieszałeś i python próbuje go użyć. Skorzystaj z nowego użytkownika (jeśli nie korzystałeś sudo) lub zrób sudo make uninstalllub odinstaluj programy.
Braiam
Byłem pierwszy raz w nowym ubunutu (nowy komputer). Chcę tylko ostrzec innych użytkowników, aby ostrożnie odinstalowali pakiet związany z pythonem, ponieważ może on zepsuć się z twoją biblioteką Ubuntu lub bibliotekami matematycznymi. Udało mi się już zainstalować montepython, zmieniając konfigurację / make Pythona i używając moich kroków (1) i (6) w celu zainstalowania numpy i scipy, dzięki za odpowiedzi.
Jorge
1
@JorgeMastache, który będzie trudny do utrzymania, ale w porządku.
Braiam