Pertanyaan Bagaimana cara menginstal numpy dan scipy untuk python?


Saya lelah untuk 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 memiliki ubuntu 12.04)

Ketika saya mencoba mengimpor numpy atau scipy, saya mendapatkan error 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 menyingkirkan kesalahan yang saya coba:

  1. Puaskan persyaratan python: $ 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. Pasang persyaratan dengan pip: $ sudo pip install requests 
  4. ... dan mencoba menginstal dengan pip: $ sudo pip install numpy dan $ sudo pip install scipy
  5. Saya sudah memiliki var lingkungan: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} Terakhir kali saya menginstal numpy dan scipy (di versi ubuntu yang lebih tua 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)

    Tapi 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 sinaptic dan pusat perangkat lunak Ubuntu

Saya telah gagal dalam setiap upaya ini dan sekarang saya tidak tahu apa yang harus dilakukan. Apakah saya kehilangan sesuatu? Bagaimana saya bisa mendapatkan numpy dan scipy terpasang dengan benar untuk python? Setiap ide akan dihargai.

ketika saya melakukannya

echo $PYTHONPATH

saya mendapat

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

35
2017-10-15 05:42


asal


Bisa tolong tambahkan output echo $PYTHONPATH untuk pertanyaanmu. Terima kasih :-) - MadMike
Mungkin ini bisa membantu: effbot.org/pyfaq/ ... - Rmano
Ok, @MadMike saya punya masalah dengan $PYTHONPATH Saya sudah menghapus definisi saya .bashrc, tetapi saya masih memiliki definisi di tempat lain karena saya masih memiliki env var $PYTHONPATH yang saya dapatkan: bash: /usr/lib/python2.7/dist-packages:: No such file or directory (double colon) ... - Jorge
Saya sudah memperbaiki dengan menulis .bashrc mengajukan export PYTHONPATH=/usr/lib/python2.7/dist-packages... Saya melakukan apa yang dibangun UCS4 / UCS2 sebagai @Rmano tetapi saya masih mendapatkan masalah yang sama dalam kedua kasus ...: \ - Jorge
Kredit harus pergi ke @Rmano. Ada masalah dengan versi buggy dari numpy dan scipy. Dengan versi yang ditingkatkan semuanya berjalan sesuai harapan. - MadMike


Jawaban:


Ok, mari ikuti petunjuk pemasangan:

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

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

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

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

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

    cython kebijakan apt-cache
    cython:
    Terpasang: (tidak ada)
    Calon: 0.17.4-0ubuntu1
    Tabel versi:
     0.17.4-0ubuntu1 0
        500 Paket http://archive.ubuntu.com/ubuntu/ raring / main amd64

    Kami memilikinya, kami menginstalnya:

    sudo apt-get install cython
    

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

  4. Anehnya, kami juga membutuhkan modul scipy juga:

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

    $ 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 ada yang salah, naik dan baca panduan lagi, Anda lupa / melewati langkah.

  6. Mengunduh sumber CLASS dari halaman mereka, buka direktori di terminal, dan bongkar dan membuatnya:

    cd dimana / the / tar / is
    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
    python setup.py build
    python setup.py install --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()
    

    Segalanya terasa menyenangkan sampai disini.

  7. Sekarang waktu yang sebenarnya, unduh tarball bulanypython 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

    Di petunjuk pemasangan beberapa catatan yang tidak relevan dalam kasus aneh ini (instalasi baru) tetapi mungkin penting ketika Anda memperbarui montepython.

  8. Perubahan ini penting. Anda ingat di mana Anda menginstal KELAS? Sekarang Anda harus memberi tahu Monte Python di mana itu. Dalam kasus saya /home/braiam/src/class_v2.0.2/class, milikmu mungkin berbeda. Kamu dapat memakai find untuk mencarinya:

    find ~ -name class -print
    

    Nah, sekarang saya memodifikasi default.conf file menggunakan apa pun yang Anda suka (saya akan menggunakan nano) dan memodifikasi root jalan, sehingga file lengkapnya 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 bisa berlari code/MontePython.py --help di direktori montepythong Anda dan semuanya harus berjalan:

    ~ / src / montepython $ code / MontePython.py - help
    penggunaan: MontePython.py [-h] [-N jumlah langkah] [-o folder output]
                      [-p input param file] [-c input cov matrix]
                      [-j jumping method] [-f jumping factor]
                      [-conf configuration file] [nomor rantai chains_number]
                      [-r restart dari rantai] [-bf restart dari file fit terbaik]
                      [-info [hitung informasi dari file yang diinginkan [hitung informasi dari file yang diinginkan ...]]]
                      [-bins jumlah sampah yang diinginkan, standarnya adalah 20] [-no_mean]
                      [folder perbandingan -comp]
                      [file plot -extra untuk kebutuhan khusus] [-noplot] [-all]
                      [-ext perubahan ekstensi untuk file output]
                      [-Halai ukuran font yang diinginkan, defaultnya adalah 15]
                      [-ticksize ticksize yang diinginkan, defaultnya adalah 13]
    
    Monte Python, kode Monte Carlo dengan Python

    argumen opsional: -h, --help tampilkan pesan bantuan ini dan keluar -N jumlah langkah folder output -o -p input file param -c masukan cov matriks -j metode melompat -f faktor melompat file konfigurasi -conf nomor rantai rantai-angka -r restart dari rantai -bb restart dari file fit terbaik -info [menghitung informasi dari file yang diinginkan [menghitung informasi dari file yang diinginkan ...]] -Bins jumlah yang diinginkan, default adalah 20 -no_mean folder perbandingan -comp file plot -extra untuk kebutuhan khusus -noplot -semua ekstensi perubahan -ext untuk file output -jenissi fontsize yang diinginkan, default adalah 15 -ticksize ticksize yang diinginkan, defaultnya adalah 13

40
2017-10-15 23:45



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-langkah alternatif. - Jorge
@ JorgeMastache Anda harus membersihkan perpustakaan Anda, mungkin Anda mengacaukan suatu tempat dan python sedang mencoba untuk menggunakannya. Gunakan pengguna baru (jika Anda tidak menggunakannya sudo) atau lakukan sudo make uninstall atau bagaimanapun programnya dihapus. - Braiam
Saya adalah instalasi pertama kalinya di sebuah ubunutu baru (komputer baru). Saya hanya ingin memperingatkan pengguna lain hanya untuk berhati-hati menghapus paket yang terkait dengan python karena dapat mengacaukan pustaka ubuntu-desktop atau 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
@JorgeMastache yang akan merepotkan untuk dipertahankan, tapi ok. - Braiam