Як встановити numpy та scipy для python?


36

Я втомився намагатися встановити numpy та 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 з синаптичного та програмного центру Ubuntu

Я провалився в кожній з цих спроб і тепер не знаю, що робити. Я щось пропускаю? Як я можу змусити коренево-нупіозних файлів правильно встановити для python? Будь-яка ідея буде оцінена.

коли я роблю

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(подвійне двокрапку) ...
Хорхе

Я вже виправляю, записуючи у .bashrcфайл export PYTHONPATH=/usr/lib/python2.7/dist-packages... Я роблю те, що будують UCS4 / UCS2 як @Rmano sugest, але в обох випадках я все-таки отримую ту саму проблему ...: \
Хорхе

1
Кредити повинні надходити до @Rmano. Виникла проблема з помилковою версією numpy і scipy. З оновленою версією все працює як очікувалося.
MadMike

Відповіді:


41

Гаразд, дотримуйтесь посібника з установки :

  1. Він говорить, що вам потрібен python 2.7 (який у вас уже є):

    $ python --version
    Python 2.7.4
  2. Тоді йдеться про те, що вам також потрібен пакет numpy, версія> = 1.4.1:

    apt-кеша політика python-numpy
    python-numpy:
    Встановлено: (немає)
    Кандидат: 1: 1.7.1-1ubuntu1
    Таблиця версій:
     1: 1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 Пакети

    Як бачите, у мене доступна numpy версія 1.7.1, тому давайте продовжуємо її встановлювати:

    sudo apt-get install python-numpy
  3. Тепер він говорить, що нам потрібен cython. Давайте перевіримо, чи доступний цей пакет:

    apt-кеш-політика цитону
    цитон:
    Встановлено: (немає)
    Кандидат: 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 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
    зробити

    Тут ми будемо чекати, поки завершиться. Як тільки це буде зроблено, ми переходимо до каталогу python і починаємо магію. Не рухаючись із каталогів, виконайте це:

    cd python
    python setup.py збірка
    python setup.py install --користувач

    Тепер у нас в каталозі користувачів встановлений 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. Тепер правда, завантажте місячний пістолет tarball у своєму кодовому каталозі:

    cd ~
    код mkdir
    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

    В інструкції по встановленню є деякі зауваження , які не є актуальними в цьому особливому випадку (нова установка), але це може бути важливо під час оновлення montepython.

  8. Ця зміна важлива. Ви пам’ятаєте, де встановили CLASS? Тепер вам слід сказати Монте-Питону, де це. У моєму випадку це так /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. Тест на монтепітон! Якщо все було нормально, ви повинні мати змогу запускатись code/MontePython.py --helpу своєму каталозі montepythong, і все має працювати:

    ~ / src / montepython $ code / MontePython.py --help
    використання: MontePython.py [-h] [-N кількість кроків] [-o папка виводу]
                      [-p вхідний парам-файл] [-c вхідна матриця cov]
                      [-j метод стрибків] [-f коефіцієнт стрибків]
                      [-conf файл конфігурації] [-chain_number ланцюговий номер]
                      [-r перезапуск з ланцюга] [-bf перезапуск з найкращого файлу]
                      [-info [обчислити інформацію потрібного файлу [обчислити інформацію потрібного файлу ...]]]
                      [-значить бажану кількість бункерів, за замовчуванням 20] [-no_mean]
                      [папка порівняння порівняння]
                      [-екстра-файл сюжету для користувацьких потреб] [-noplot] [-all]
                      [-друге розширення зміни для вихідного файлу]
                      [-фотографувати потрібний розмір шрифту, за замовчуванням - 15]
                      [-містить потрібний розмір кліща, за замовчуванням - 13]
    
    Монте-Пітон, код Монте-Карло в Python

    необов'язкові аргументи: -h, --допоможіть показати це довідкове повідомлення та вийти -N кількість кроків -вихідна папка -p вхідний парам-файл -c вхідна матриця cov -j метод стрибків -фактор стрибків -конфігураційний файл -chain_number ланцюговий номер -r перезапуск з ланцюга -bf перезапуск з найкращого файлу -info [обчислити інформацію потрібного файлу [обчислити інформацію потрібного файлу ...]] -потрібна кількість бункерів, за замовчуванням - 20 -но_міан -комплект порівняння -екстра-файл сюжету для спеціальних потреб -ноплот -всі -наступне розширення зміни для вихідного файлу -фонізувати потрібний розмір шрифту, за замовчуванням - 15 -розміряти потрібний розмір кліща, за замовчуванням - 13

З цим у вас встановлений монтептон і готовий до прокатки!


Дякую за вашу відповідь. Звичайно, в якості першого кроку я слідую інструкції по установці, наданій montepython, на жаль, я застряг у вашому кроці (5), тому що python не міг знайти scipy / numpy. Тому я спробував альтернативні кроки.
Хорхе

1
@JorgeMastache вам слід очистити свої бібліотеки, можливо, ви десь заплуталися і python намагається ним користуватися. Скористайтеся новим користувачем (якщо ви цього не використовували sudo) або зробіть sudo make uninstallабо, тим не менш, програми видаляються.
Брайам

Я вперше був встановлений у новому ubunutu (новому комп’ютері). Я просто хочу попередити інших користувачів, щоб вони обережно видаляли пакет, пов'язаний з python, оскільки він може зіпсуватися з вашими ubuntu-настільними або математичними бібліотеками. Мені вже вдається встановити montepython шляхом перенастроювання / make python та використання моїх кроків (1) та (6) для встановлення numpy та scipy, дякую за ваші відповіді.
Хорхе

1
@JorgeMastache, що буде болю підтримувати, але добре.
Брайам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.