Bagaimana menginstal numpy dan scipy untuk python?

36

Saya lelah mencoba menginstal numpy dan scipy untuk phyton 2.7.5, saya memerlukan versi python ini karena tujuan akhir saya adalah menginstal kelas ( http://class-code.net/ ) dan montepython ( http: // montepython .net / ).

(Saya punya ubuntu 12.04)

Ketika saya mencoba mengimpor numpy atau scipy saya mendapatkan kesalahan berikut setiap kali:

$ 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

Untuk menghilangkan kesalahan, saya telah mencoba:

  1. Persyaratan python yang memuaskan: $ sudo apt-get install build-essential python-dev gfortran
  2. Instal dengan apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Instal persyaratan dengan pip: $ sudo pip install requests
  4. ... dan mencoba menginstal dengan pip: $ sudo pip install numpyand$ sudo pip install scipy
  5. Saya sudah memiliki environment var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} Terakhir kali saya menginstal numpy dan scipy (di versi Ubuntu lama 10.x) ini bekerja untuk saya.
  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" dan kemudian instal keduanya dengan pip seperti pada (4)

    Tetapi sekarang tampaknya server python-distribute.org sedang down. Saya mendapat kesalahan berikut:

    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. Saya juga mencoba menginstal numpy dan scipy dari pusat perangkat lunak sinaptik dan Ubuntu

Saya telah gagal dalam setiap upaya ini dan sekarang saya tidak tahu harus berbuat apa. Apakah saya melewatkan sesuatu? Bagaimana saya bisa mendapatkan numpy dan scipy diinstal dengan benar untuk python? Ide apa pun akan dihargai.

ketika saya melakukannya

echo $PYTHONPATH

saya mendapat

/usr/lib/python2.7/dist-packages
Jorge
sumber
Bisa tolong tambahkan output echo $PYTHONPATHke pertanyaan Anda. Terima kasih :-)
MadMike
Mungkin ini bisa membantu: effbot.org/pyfaq/…
Rmano
Oke, @MadMike Saya punya masalah dengan $PYTHONPATHsaya sudah menghapus definisi saya .bashrc, tapi saya masih punya definisi di tempat lain karena saya masih punya env var $PYTHONPATHyang saya dapatkan: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(double colon) ...
Jorge
Saya sudah benar dengan menulis dalam .bashrcfile export PYTHONPATH=/usr/lib/python2.7/dist-packages... Saya melakukan apa yang membangun UCS4 / UCS2 membangun sebagai @Rmano sugest tapi saya masih mendapatkan masalah yang sama dalam kedua kasus ...: \
Jorge
1
Kredit harus masuk ke @Rmano. Ada masalah dengan versi nuggy dan cipy kereta. Dengan versi yang ditingkatkan semuanya bekerja seperti yang diharapkan.
MadMike

Jawaban:

41

Oke, mari ikuti panduan instalasi :

  1. Dikatakan Anda perlu python 2.7 (yang sudah Anda miliki):

    $ python --version
    Python 2.7.4
  2. Kemudian dikatakan bahwa Anda memerlukan paket numpy juga, versi> = 1.4.1:

    kebijakan apt-cache python-numpy
    python-numpy:
    Diinstal: (tidak ada)
    Kandidat: 1: 1.7.1-1ubuntu1
    Tabel versi:
     1: 1.7.1-1ubuntu1 0
        500 Paket http://archive.ubuntu.com/ubuntu/ raring / amd64 utama

    Seperti yang Anda lihat, saya memiliki numpy versi 1.7.1, jadi mari kita lanjutkan untuk menginstalnya:

    sudo apt-get install python-numpy
  3. Sekarang dikatakan bahwa kita memerlukan cython, mari kita periksa apakah paket itu tersedia:

    apt-cache policy cython
    cython:
    Diinstal: (tidak ada)
    Kandidat: 0.17.4-0ubuntu1
    Tabel versi:
     0.17.4-0ubuntu1 0
        500 Paket http://archive.ubuntu.com/ubuntu/ raring / amd64 utama

    Kami memilikinya, kami menginstalnya:

    sudo apt-get install cython

    Tolong, perhatikan bahwa ada paket lain yang dependensi sedang diinstal juga.

  4. Anehnya, kita juga membutuhkan modul yang lemah:

    sudo apt-get install python-scipy
  5. Pengujian . Buka python di terminal dan ketik berikut ini:

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

    Di atas, harus tanpa kesalahan. Jika terjadi kesalahan, naik dan baca panduan ini lagi, Anda lupa / lewati satu langkah.

  6. Mengunduh sumber-sumber CLASS dari halaman mereka, pergi ke direktori di terminal, dan lepaskan dan buatlah:

    cd di mana / the / tar / berada
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    membuat

    Di sini kita akan menunggu sampai selesai. Setelah ini selesai, kita pergi ke direktori python dan memulai keajaiban. Tanpa berpindah dari direktori, jalankan ini:

    cd python
    pembuatan python setup.py
    python setup.py instal --user

    Sekarang kami telah menginstal CLASS di direktori pengguna kami. Kita harus mengujinya!

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

    Semuanya menyenangkan dan cozzy sampai di sini.

  7. Sekarang saat yang tepat, unduh tarbal monthypython di direktori kode Anda:

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

    Dalam instruksi instalasi ada beberapa catatan yang tidak relevan dalam kasus khusus ini (instalasi baru) tetapi mungkin penting ketika Anda memperbarui montepython.

  8. Perubahan ini penting. Anda ingat di mana Anda menginstal CLASS? Sekarang Anda harus memberi tahu Monte Python di mana itu. Dalam kasus saya /home/braiam/src/class_v2.0.2/class, Anda mungkin berbeda. Anda dapat menggunakannya finduntuk mencarinya:

    find ~ -name class -print

    Nah, sekarang saya memodifikasi default.conffile menggunakan apa pun yang Anda suka (saya akan menggunakan nano) dan memodifikasi rootpath, sehingga file lengkap akan terlihat seperti:

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

    Simpan file dan keluar.

  9. Uji montepython! Jika semuanya baik-baik saja, Anda harus dapat menjalankan code/MontePython.py --helpdi direktori montepythong Anda dan semuanya harus berjalan:

    ~ / src / montepython $ code / MontePython.py --help
    penggunaan: MontePython.py [-h] [-N jumlah langkah] [-o folder keluaran]
                      [-p input param file] [-c input cov matrix]
                      [-j jumping method] [-f jumping factor]
                      [file konfigurasi -conf] [-rantai rantai nomor]
                      [-r restart dari rantai] [-bf mulai dari file yang paling pas]
                      [-info [hitung informasi file yang diinginkan [hitung informasi file yang diinginkan ...]]]
                      [-tempat sampah yang diinginkan, standarnya adalah 20] [-no_mean]
                      [folder perbandingan -comp]
                      [-tekstra file plot untuk kebutuhan khusus] [-noplot] [-semua]
                      [ekstensi ekstensi -ext untuk file output]
                      [-ukuran font yang diinginkan, standarnya 15]
                      [-tuk ukuran ticksize yang diinginkan, standarnya adalah 13]
    
    Monte Python, kode Monte Carlo dalam Python

    argumen opsional: -h, --help tampilkan pesan bantuan ini dan keluar -N jumlah langkah folder keluaran -o input file param -p -c input cov matrix Metode jump-j faktor melompat file konfigurasi -conf -rantai nomor rantai -R restart dari rantai -bf restart dari file yang paling sesuai -info [hitung informasi file yang diinginkan [hitung informasi file yang diinginkan ...]] - jumlah sampah yang diinginkan, standarnya adalah 20 -tidak berarti folder perbandingan -comp File plot -extra untuk kebutuhan kustom -noplot -semua ekstensi ekstensi -ext untuk file output Ukuran font yang diinginkan, default adalah 15 -tingkat ukuran ticksize yang diinginkan, defaultnya adalah 13

Dengan ini, Anda telah menginstal montepython dan siap untuk bergulir!

Braiam
sumber
Terima kasih atas jawaban anda. Tentu saja, sebagai langkah pertama saya mengikuti panduan instalasi yang diberikan oleh montepython, sayangnya saya terjebak dalam langkah Anda (5) karena python tidak dapat menemukan scipy / numpy. Itu sebabnya saya mencoba langkah alternatif.
Jorge
1
@JorgeMastache Anda harus membersihkan perpustakaan Anda, mungkin Anda mengacaukan suatu tempat dan python mencoba menggunakannya. Gunakan pengguna baru (jika Anda tidak digunakan sudo) atau lakukan sudo make uninstallatau bagaimanapun program dihapus.
Braiam
Saya adalah instalasi pertama kali di ubunutu baru (komputer baru). Saya hanya ingin memperingatkan pengguna lain hanya untuk berhati-hati menghapus paket terkait python karena dapat mengacaukan dengan ubuntu-desktop atau perpustakaan matematika Anda. Saya sudah berhasil menginstal montepython dengan mengkonfigurasi ulang / membuat python dan menggunakan langkah saya (1) dan (6) untuk menginstal numpy dan scipy, terima kasih atas jawaban Anda.
Jorge
1
@JorgeMastache itu akan menjadi sakit untuk dipertahankan, tapi ok.
Braiam