Làm thế nào để cài đặt numpy và scipy cho python?


36

Tôi mệt mỏi để cố gắng cài đặt NumPy và scipy cho phyton 2.7.5, tôi cần phiên bản này của python vì mục tiêu cuối cùng của tôi nó để cài đặt lớp ( http://class-code.net/ ) và montepython ( http: // montepython .net / ).

(Tôi có Ubuntu 12.04)

Khi tôi cố gắng nhập numpy hoặc scipy, tôi luôn gặp lỗi sau:

$ 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

Để thoát khỏi lỗi tôi đã thử:

  1. Đáp ứng yêu cầu trăn: $ sudo apt-get install build-essential python-dev gfortran
  2. Cài đặt với apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Yêu cầu cài đặt với pip: $ sudo pip install requests
  4. ... và đã cố gắng cài đặt với pip: $ sudo pip install numpy$ sudo pip install scipy
  5. Tôi đã có môi trường var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} Lần cuối cùng tôi cài đặt numpy và scipy (trong phiên bản ub Ubuntu cũ hơn 10.x), điều này làm việc cho tôi.
  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" và sau đó cài đặt cả hai với pip như trong (4)

    Nhưng bây giờ có vẻ như máy chủ của python-distribution.org đã ngừng hoạt động. Tôi đã nhận được lỗi sau:

    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. Tôi cũng đã cố gắng cài đặt numpy và scipy từ trung tâm phần mềm synap và Ubuntu

Tôi đã thất bại trong mỗi lần thử này và bây giờ tôi không biết phải làm gì. Tui bỏ lỡ điều gì vậy? Làm thế nào tôi có thể nhận được numpy và scipy được cài đặt chính xác cho python? Bất kỳ ý tưởng sẽ được đánh giá cao.

khi tôi làm

echo $PYTHONPATH

tôi có

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

Có thể vui lòng thêm đầu ra của echo $PYTHONPATHcâu hỏi của bạn. Cảm ơn bạn :-)
MadMike

Có lẽ điều này có thể giúp: effbot.org/pyfaq/ Mạnh
Rmano

Ok, @MadMike Tôi có một vấn đề với $PYTHONPATHtôi đã xóa các định nghĩa của mình .bashrc, nhưng tôi vẫn có một định nghĩa ở một nơi khác bởi vì tôi vẫn có var env $PYTHONPATHmà tôi nhận được: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(dấu hai chấm) ...
Jorge

Tôi đã sửa bằng cách viết trong .bashrctệp export PYTHONPATH=/usr/lib/python2.7/dist-packages... Tôi thực hiện những gì UCS4 build / UCS2 xây dựng dưới dạng @Rmano sugest nhưng tôi vẫn gặp vấn đề tương tự trong cả hai trường hợp ...: \
Jorge

1
Tín dụng nên đến @Rmano. Có một vấn đề với một phiên bản lỗi của numpy và scipy. Với phiên bản nâng cấp, mọi thứ hoạt động như mong đợi.
MadMike

Câu trả lời:


41

Ok, hãy làm theo hướng dẫn cài đặt :

  1. Nó nói rằng bạn cần python 2.7 (mà bạn đã có):

    $ python --version
    Python 2.7.4
  2. Sau đó, nó nói rằng bạn cũng cần gói numpy, phiên bản> = 1.4.1:

    chính sách apt-cache python-numpy
    trăn-numpy:
    Đã cài đặt: (không có)
    Thí sinh: 1: 1.7.1-1ubfox1
    Bảng phiên bản:
     1: 1.7.1-1ubfox1 0
        500 http://archive.ubfox.com/ubfox/ raring / gói amd64 chính

    Như bạn có thể thấy, tôi có sẵn phiên bản numpy 1.7.1, vì vậy hãy tiến hành cài đặt nó:

    sudo apt-get install python-numpy
  3. Bây giờ nó nói rằng chúng ta cần cython, hãy kiểm tra xem gói đó có sẵn không:

    chính sách apt-cache cython
    con trăn
    Đã cài đặt: (không có)
    Thí sinh: 0.17.4-0ubfox1
    Bảng phiên bản:
     0.17.4-0ubfox1 0
        500 http://archive.ubfox.com/ubfox/ raring / gói amd64 chính

    Chúng tôi có nó, chúng tôi cài đặt nó:

    sudo apt-get install cython

    Xin vui lòng lưu ý rằng có những gói khác phụ thuộc cũng đang được cài đặt.

  4. Thật kỳ lạ, chúng ta cũng cần mô-đun scipy quá:

    sudo apt-get install python-scipy
  5. Kiểm tra . Mở python trong một thiết bị đầu cuối và gõ như sau:

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

    Ở trên, phải không có lỗi. Nếu có lỗi xảy ra, hãy đi lên và đọc lại hướng dẫn, bạn đã quên / bỏ qua một bước.

  6. Tải xuống các nguồn LỚP từ trang của họ, đi đến thư mục trong thiết bị đầu cuối và gỡ bỏ nó và làm cho nó:

    cd trong đó / the / tar / là
    tar zxf class_v2.0.2.tar.gz
    cd lớp_v2.0.2
    chế tạo

    Ở đây chúng tôi sẽ đợi cho đến khi hoàn thành. Một khi điều này được thực hiện, chúng tôi đi đến thư mục python và bắt đầu phép thuật. Không di chuyển từ các thư mục chạy này:

    trăn cd
    python setup.py xây dựng
    cài đặt python cài đặt --user

    Bây giờ chúng tôi đã cài đặt LỚP trong thư mục người dùng của chúng tôi. Chúng ta nên kiểm tra nó!

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

    Tất cả mọi thứ là tốt đẹp cho đến đây.

  7. Bây giờ là thời gian thật, tải tarball hàng tháng trong thư mục mã của bạn:

    cd ~
    mã mkdir
    mã 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

    Trong hướng dẫn cài đặt là một số lưu ý không liên quan trong trường hợp đặc biệt này (cài đặt mới) nhưng nó có thể quan trọng khi bạn cập nhật montepython.

  8. Sự thay đổi này rất quan trọng. Bạn nhớ nơi bạn đã cài đặt LỚP? Bây giờ bạn nên nói với Monte Python đó là đâu. Trong trường hợp của tôi, nó /home/braiam/src/class_v2.0.2/classcó thể khác. Bạn có thể sử dụng findđể tìm kiếm nó:

    find ~ -name class -print

    Chà, bây giờ tôi sửa đổi default.conftệp bằng bất cứ thứ gì bạn thích (tôi sẽ sử dụng nano) và sửa đổi rootđường dẫn, vì vậy tệp hoàn chỉnh sẽ trông như sau:

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

    Lưu file và thoát.

  9. Thử nghiệm montepython! Nếu mọi thứ đều ổn, bạn sẽ có thể chạy code/MontePython.py --helptrong thư mục montepythong của mình và mọi thứ sẽ chạy:

    ~ / src / montepython $ code / MontePython.py - trợ giúp
    cách sử dụng: MontePython.py [-h] [-N số bước] [-o thư mục đầu ra]
                      [-p tệp param đầu vào] [ma trận cov đầu vào -c]
                      [-j phương thức nhảy] [-f yếu tố nhảy]
                      [tập tin cấu hình -conf] [số chuỗi -chain_number]
                      [-r khởi động lại từ chuỗi] [-bf khởi động lại từ tệp phù hợp nhất]
                      [-info [tính toán thông tin của tệp mong muốn [tính toán thông tin của tệp mong muốn ...]]]
                      [-bins số thùng mong muốn, mặc định là 20] [-no_mean]
                      [-comp thư mục so sánh]
                      [Tập tin cốt truyện -extra cho nhu cầu tùy chỉnh] [-noplot] [-all]
                      [phần mở rộng thay đổi nội dung cho tệp đầu ra]
                      [-fontsize phông chữ mong muốn, mặc định là 15]
                      [-ticksize ticksize mong muốn, mặc định là 13]
    
    Monte Python, mã Monte Carlo trong Python

    đối số tùy chọn: -h, --hỗ trợ hiển thị thông báo trợ giúp này và thoát -N số bước -o thư mục đầu ra -p tập tin đầu vào -c ma trận cov đầu vào phương pháp nhảy -j -f yếu tố nhảy tập tin cấu hình -conf số chuỗi -chain_number -r khởi động lại từ chuỗi -bf khởi động lại từ tập tin phù hợp nhất -info [tính toán thông tin của tệp mong muốn [tính toán thông tin của tệp mong muốn ...]] -bins số thùng mong muốn, mặc định là 20 -no_mean thư mục so sánh -comp tập tin cốt truyện -extra cho nhu cầu tùy chỉnh -noplot -tất cả các -ext thay đổi mở rộng cho tập tin đầu ra -fontsize phông chữ mong muốn, mặc định là 15 -ticksize ticksize mong muốn, mặc định là 13

Với điều này, bạn đã cài đặt montepython và sẵn sàng để tung ra!


cảm ơn câu trả lời của bạn. Tất nhiên, là bước đầu tiên tôi làm theo hướng dẫn cài đặt được đưa ra bởi montepython, không may là tôi bị kẹt trong bước của bạn (5) vì trăn không thể tìm thấy scipy / numpy. Đó là lý do tại sao tôi đã thử các bước thay thế.
Jorge

1
@JorgeMastache bạn nên dọn dẹp thư viện của mình, có thể bạn đã gửi nhầm ở đâu đó và python đang cố gắng sử dụng nó. Sử dụng người dùng mới (nếu bạn không sử dụng sudo) hoặc làm sudo make uninstallhoặc tuy nhiên các chương trình được gỡ cài đặt.
Braiam

Tôi là lần đầu tiên cài đặt trong một ubunutu mới (máy tính mới). Tôi chỉ muốn cảnh báo những người dùng khác chỉ cẩn thận gỡ cài đặt gói liên quan đến python vì nó có thể gây rối với các thư viện toán học hoặc máy tính để bàn ubfox của bạn. Tôi đã quản lý để cài đặt montepython bằng cách cấu hình lại / tạo python và sử dụng bước (1) và (6) của tôi để cài đặt numpy và scipy, cảm ơn câu trả lời của bạn.
Jorge

1
@JorgeMastache đó sẽ là một nỗi đau để duy trì, nhưng ok.
Braiam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.