จะติดตั้ง numpy และ scipy สำหรับ python ได้อย่างไร


36

ฉันเหนื่อยที่จะลองติดตั้ง numpy and scipy สำหรับ phyton 2.7.5 ฉันต้องการ python เวอร์ชั่นนี้เพราะเป้าหมายสุดท้ายของฉันคือการติดตั้งคลาส ( http://class-code.net/ ) และ montepython ( http: // montepython .net / )

(ฉันมี Ubuntu 12.04)

เมื่อฉันพยายามนำเข้า numpy หรือ scipy ฉันได้รับข้อผิดพลาดต่อไปนี้ทุกครั้ง:

$ 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

เพื่อกำจัดข้อผิดพลาดฉันได้ลอง:

  1. ตอบสนองความต้องการของหลาม: $ sudo apt-get install build-essential python-dev gfortran
  2. ติดตั้งด้วย apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. ติดตั้งความต้องการด้วย pip: $ sudo pip install requests
  4. ... และพยายามติดตั้งด้วย pip: $ sudo pip install numpyและ$ sudo pip install scipy
  5. ฉันมีสภาพแวดล้อม var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} ครั้งสุดท้ายที่ฉันติดตั้ง numpy และ scipy (ใน Ubuntu รุ่นเก่า 10.x) สิ่งนี้ใช้ได้สำหรับฉัน
  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" จากนั้นติดตั้งทั้งคู่ด้วย pip เช่นเดียวกับใน (4)

    แต่ตอนนี้ดูเหมือนว่าเซิร์ฟเวอร์ของpython-distribute.orgไม่ทำงาน ฉันได้รับข้อผิดพลาดต่อไปนี้:

    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. ฉันยังพยายามติดตั้ง numpy และ scipy จากศูนย์ซอฟต์แวร์ synaptic และ Ubuntu

ฉันล้มเหลวในการพยายามแต่ละครั้งและตอนนี้ฉันไม่รู้จะทำอย่างไร ฉันพลาดอะไรไปรึเปล่า? ฉันจะติดตั้ง numpy และ scipy ให้ถูกต้องสำหรับไพ ธ อนได้อย่างไร? ความคิดใด ๆ ที่จะได้รับการชื่นชม

เมื่อฉันทำ

echo $PYTHONPATH

ฉันเข้าใจ

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

โปรดเพิ่มผลลัพธ์ของecho $PYTHONPATHคำถามของคุณ ขอบคุณ :-)
MadMike

บางทีนี่อาจช่วยได้: effbot.org/pyfaq/…
Rmano

ตกลง @MadMike ฉันมีปัญหากับ$PYTHONPATHฉันแล้วลบคำจำกัดความของฉันใน.bashrcแต่ฉันยังคงมีความหมายที่อื่นเพราะฉันยังมี env var $PYTHONPATHที่ฉันได้รับ: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(ลำไส้ใหญ่สองครั้ง) ...
Jorge

ฉันแก้ไขให้ถูกต้องแล้วโดยเขียนเป็น.bashrcไฟล์export PYTHONPATH=/usr/lib/python2.7/dist-packages... ฉันทำสิ่งที่ UCS4 build / UCS2 build เป็น @Rmano sugest แต่ฉันยังคงได้รับปัญหาเดียวกันในทั้งสองกรณี ... : \
Jorge

1
เครดิตควรไปที่ @Rmano มีปัญหากับรุ่น buggy ของ numpy และ scipy ด้วยรุ่นอัพเกรดทุกอย่างทำงานตามที่คาดไว้
MadMike

คำตอบ:


41

ตกลงให้ทำตามคำแนะนำในการติดตั้ง :

  1. มันบอกว่าคุณต้องการ python 2.7 (ซึ่งคุณมีอยู่แล้ว):

    $ python --version
    Python 2.7.4
    
  2. ถ้าอย่างนั้นก็บอกว่าคุณต้องการแพ็คเกจ numpy ด้วย, รุ่น> = 1.4.1:

    นโยบาย apt-cache python-numpy
    หลาม numpy:
    ติดตั้งแล้ว: (ไม่มี)
    ผู้สมัคร: 1: 1.7.1-1ubuntu1
    ตารางเวอร์ชัน:
     1: 1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 แพ็คเกจ

    อย่างที่คุณเห็นฉันมี numpy version 1.7.1 ดังนั้นให้ทำการติดตั้งต่อไป:

    sudo apt-get install python-numpy
  3. ตอนนี้มันบอกว่าเราต้องการ cython ลองตรวจสอบว่าแพ็คเกจนั้นมีประโยชน์หรือไม่:

    apt-cache policy cython
    Cython:
    ติดตั้งแล้ว: (ไม่มี)
    ผู้สมัคร: 0.17.4-0ubuntu1
    ตารางเวอร์ชัน:
     0.17.4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 แพ็คเกจ

    เรามีมันเราติดตั้งมัน:

    sudo apt-get install cython

    โปรดสังเกตว่ามีแพ็คเกจอื่น ๆ ที่ขึ้นต่อกันที่ติดตั้งอยู่ด้วย

  4. ผิดปกติพอเราต้องการโมดูล scipy ด้วย:

    sudo apt-get install python-scipy
  5. การทดสอบ เปิด python ในเทอร์มินัลแล้วพิมพ์ต่อไปนี้:

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

    ข้างต้นจะต้องไม่มีข้อผิดพลาด หากมีข้อผิดพลาดขึ้นไปและอ่านคู่มืออีกครั้งคุณลืม / ข้ามขั้นตอน

  6. การดาวน์โหลดแหล่งข้อมูล CLASS จากหน้าเว็บของพวกเขาไปที่ไดเรกทอรีในเทอร์มินัลแล้วนำมันออกและยกเลิกการสร้าง:

    cd โดยที่ / the / tar / คือ
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    แต่งหน้า

    ที่นี่เราจะรอจนกว่าจะเสร็จสมบูรณ์ เมื่อเสร็จแล้วเราไปที่ไดเรกทอรีหลามและเริ่มเวทย์มนตร์ หากไม่ย้ายจากไดเรกทอรีให้ทำสิ่งนี้:

    หลาม cd
    หลาม setup.py บิวด์
    หลาม setup.py ติดตั้ง --user

    ตอนนี้เรามี CLASS ติดตั้งในไดเรกทอรีผู้ใช้ของเรา เราควรทดสอบมัน!

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

    ทุกอย่างเป็นเรื่องที่แสนสบายจนมาถึงที่นี่

  7. ตอนนี้เวลาจริงดาวน์โหลด monthypython tarball ในไดเรกทอรีรหัสของคุณ:

    cd ~
    รหัส mkdir
    รหัสซีดี
    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

    ในคำแนะนำในการติดตั้งมีหมายเหตุบางประการที่ไม่เกี่ยวข้องในกรณีพิเศษนี้ (การติดตั้งใหม่) แต่อาจมีความสำคัญเมื่อคุณอัปเดต montepython

  8. การเปลี่ยนแปลงนี้มีความสำคัญ คุณจำตำแหน่งที่ติดตั้งคลาสได้หรือไม่ ตอนนี้คุณควรบอก Monte Python ว่าอยู่ที่ไหน ในกรณีของฉันมันเป็นของ/home/braiam/src/class_v2.0.2/classคุณอาจแตกต่างกัน คุณสามารถใช้findเพื่อค้นหา:

    find ~ -name class -print

    ตอนนี้ฉันจะแก้ไขdefault.confไฟล์โดยใช้สิ่งที่คุณชอบ (ฉันจะใช้นาโน) และแก้ไขrootพา ธ ดังนั้นไฟล์ที่สมบูรณ์จะมีลักษณะดังนี้:

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

    บันทึกไฟล์และออก

  9. ทดสอบ montepython! หากทุกอย่างเรียบร้อยคุณควรจะสามารถเรียกใช้code/MontePython.py --helpในไดเรกทอรี montepythong ของคุณและทุกอย่างควรทำงาน:

    ~ / src / montepython $ code / MontePython.py --help
    การใช้งาน: MontePython.py [-h] [-N จำนวนขั้นตอน] [-o โฟลเดอร์ออก]
                      [-p ไฟล์พารามิเตอร์อินพุต] [-c อินพุตโควิเมทริกซ์]
                      [-j กระโดดวิธี] [-f กระโดดปัจจัย]
                      [-conf ไฟล์การกำหนดค่า] [-chain_number หมายเลขโซ่]
                      [-r รีสตาร์ทจากลูกโซ่] [-bf รีสตาร์ทจากไฟล์ที่ดีที่สุด]
                      [-info [ข้อมูลการคำนวณของไฟล์ที่ต้องการ [ข้อมูลการคำนวณของไฟล์ที่ต้องการ ... ]]]
                      [-bins จำนวนถังขยะที่ต้องการค่าเริ่มต้นคือ 20] [-no_mean]
                      [- เปรียบเทียบโฟลเดอร์]
                      [-extra plot file สำหรับความต้องการที่กำหนดเอง] [-noplot] [-all]
                      [นามสกุลข้อความเปลี่ยนแปลงสำหรับไฟล์เอาต์พุต]
                      [-fontsize ขนาดอักษรที่ต้องการค่าเริ่มต้นคือ 15]
                      [-ticksize ticksize ที่ต้องการเริ่มต้นคือ 13]
    
    Monte Python รหัส Monte Carlo ใน Python

    อาร์กิวเมนต์ตัวเลือก: -h, - ช่วยแสดงข้อความช่วยเหลือนี้และออก จำนวนขั้นตอน -N -o โฟลเดอร์เอาท์พุท ไฟล์ p- พารามิเตอร์การป้อนข้อมูล -c cov เมทริกซ์อินพุต วิธีการกระโดด -j ปัจจัยการกระโดด ไฟล์การกำหนดค่า -conf -chain_number หมายเลขโซ่ -r เริ่มจากเชน -bf รีสตาร์ทจากไฟล์ที่เหมาะสมที่สุด -info [ข้อมูลการคำนวณของไฟล์ที่ต้องการ [ข้อมูลการคำนวณของไฟล์ที่ต้องการ ... ]] จำนวนที่ต้องการของถังขยะเริ่มต้นคือ 20 -no_mean - เปรียบเทียบโฟลเดอร์ -extra plot file สำหรับความต้องการที่กำหนดเอง -noplot พัก ส่วนขยายการเปลี่ยนแปลงถัดไปสำหรับไฟล์เอาต์พุต - ขนาดตัวอักษรที่ต้องการแบบอักษรเริ่มต้นคือ 15 -ticksize ticksize ที่ต้องการเริ่มต้นคือ 13

ด้วยสิ่งนี้คุณได้ติดตั้ง montepython และพร้อมลุย!


ขอบคุณสำหรับคำตอบ. แน่นอนว่าเป็นขั้นตอนแรกที่ฉันทำตามคู่มือการติดตั้งที่ได้รับจาก montepython โชคไม่ดีที่ฉันติดอยู่ในขั้นตอนที่ (5) เพราะหลามไม่พบ scipy / numpy นั่นเป็นเหตุผลที่ฉันลองขั้นตอนทางเลือกอื่น
Jorge

1
@ JorgeMastache คุณควรทำความสะอาดห้องสมุดของคุณบางทีคุณอาจทำบางสิ่งบางอย่างยุ่งเหยิงและหลามก็พยายามใช้มัน ใช้ผู้ใช้ใหม่ (ถ้าคุณไม่ได้ใช้sudo) หรือทำsudo make uninstallหรือโปรแกรมถอนการติดตั้ง
Braiam

ฉันเป็นครั้งแรกที่ติดตั้งใน ubunutu ใหม่ (คอมพิวเตอร์ใหม่) ฉันแค่ต้องการเตือนผู้ใช้รายอื่นให้ระมัดระวังในการถอนการติดตั้งแพ็กเกจที่เกี่ยวข้องกับหลามเพราะมันสามารถยุ่งกับไลบรารีอูบุนตูเดสก์ท็อปหรือคณิตศาสตร์ของคุณ ฉันจัดการติดตั้ง montepython แล้วโดยการตั้งค่าใหม่ / สร้าง python และใช้ step (1) และ (6) เพื่อติดตั้ง numpy และ scipy ขอบคุณสำหรับคำตอบของคุณ
Jorge

1
@ JorgeMastache ที่จะเจ็บปวดในการรักษา แต่ก็โอเค
Braiam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.