Как установить 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. Установите требование с помощью пункта: $ 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" а затем установите их оба с помощью пипса, как в (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 правильно установлены для Python? Любая идея будет оценена.

когда я делаю

echo $PYTHONPATH

я получил

/usr/lib/python2.7/dist-packages
Jorge
источник
Не могли бы вы добавить вывод 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. Затем он говорит, что вам также нужен пакет numy, версия> = 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 пакетов

    Как видите, у меня есть версия numy 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 где / / tar / находится
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    сделать

    Здесь мы будем ждать, пока не будет завершено. Как только это будет сделано, мы идем в каталог python и запускаем магию. Не переходя из каталогов, запустите это:

    cd python
    python setup.py build
    python setup.py установить --user

    Теперь у нас установлен класс в нашем каталоге пользователей. Мы должны проверить это!

    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. Теперь время истины, загрузите taryball monthypython в свою директорию кода:

    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. Это изменение важно. Вы помните, где вы установили КЛАСС? Теперь вы должны сказать Монте Пайтону, где это. В моем случае /home/braiam/src/class_v2.0.2/class, у вас может быть по-другому. Вы можете использовать findдля поиска:

    find ~ -name class -print

    Что ж, теперь я изменяю default.confфайл, используя все, что вам нравится (я буду использовать nano) и изменяю 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 входная матрица покрытия]
                      [-j метод прыжков] [-f коэффициент прыжков]
                      [-conf файл конфигурации] [-chain_number номер цепочки]
                      [-r перезагрузка из цепочки] [-bf перезагрузка из файла наилучшего соответствия]
                      [-info [вычислить информацию о желаемом файле [вычислить информацию о желаемом файле ...]]]
                      [-bins желаемое количество бинов, по умолчанию 20] [-no_mean]
                      [-comp Сравнительная папка]
                      [-дополнительный файл графика для пользовательских нужд] [-noplot] [-all]
                      [-ext изменить расширение для выходного файла]
                      [-fontsize желаемый размер шрифта, по умолчанию 15]
                      [-ticksize желаемый размер, по умолчанию 13]
    
    Монте-Питон, код Монте-Карло на Питоне

    необязательные аргументы: -h, --help показать это справочное сообщение и выйти -N количество шагов -o выходная папка -p входной файл параметров входная матрица -j метод прыжков фактор прыжка -conf файл конфигурации номер цепочки -r перезапустить из цепи -bf перезапустить из файла наилучшего соответствия -info [вычислить информацию о желаемом файле [вычислить информацию о желаемом файле ...]] -бины желаемое количество бинов, по умолчанию 20 -no_mean папка сравнения -экстра файл графика для пользовательских нужд -noplot -все -ext изменить расширение для выходного файла -fontsize желаемый размер шрифта, по умолчанию 15 -ticksize желаемый размер, по умолчанию 13

С этим у вас есть montepython установлен и готов к работе!

Braiam
источник
спасибо за Ваш ответ. Конечно, в качестве первого шага я следую руководству по установке, данному montepython, к сожалению, я застрял в вашем шаге (5), потому что python не смог найти scipy / numpy. Вот почему я попробовал альтернативные шаги.
Хорхе
1
@JorgeMastache вы должны почистить свои библиотеки, возможно, вы где-то напутали и python пытается использовать это. Используйте нового пользователя (если вы не использовали sudo) или сделайте sudo make uninstallили, однако, программы будут удалены.
Брайам
Я впервые установил новую убунуту (новый компьютер). Я просто хочу предупредить других пользователей, просто будьте осторожны при удалении пакета, связанного с python, потому что он может испортить ваши ubuntu-desktop или математические библиотеки. Мне уже удалось установить montepython, переконфигурировав / сделав python и используя мои шаги (1) и (6) для установки numpy и scipy, спасибо за ваши ответы.
Хорхе
1
@JorgeMastache это будет трудно поддерживать, но хорошо.
Брайам