Я устал пытаться установить 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
Чтобы избавиться от ошибки, которую я пытался :
$ sudo apt-get install build-essential python-dev gfortran
$ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
$ sudo pip install requests
$ sudo pip install numpy
и $ sudo pip install scipy
export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH}
Когда я в последний раз устанавливал numpy и scipy (в более старой версии Ubuntu 10. х) это сработало для меня. 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'
Я также пытался установить numpy и scipy из программного центра synaptic и Ubuntu
У меня было не удалось в каждой из этих попыток, и теперь я не знаю, что делать. Я что-то пропустил? Как я могу получить NumPy и Scipy правильно установлены для Python? Любая идея будет оценена.
когда я делаю
echo $PYTHONPATH
я получаю
/usr/lib/python2.7/dist-packages
Хорошо, позволяет, следуют инструкции по установке:
Это говорит необходимость в python 2.7 (который Вы уже имеете):
$ python --version
Python 2.7.4
Затем это говорит необходимость в numpy пакете также, версия> = 1.4.1:
apt-cache policy python-numpy python-numpy: Installed: (none) Candidate: 1:1.7.1-1ubuntu1 Version table: 1:1.7.1-1ubuntu1 0 500 http://archive.ubuntu.com/ubuntu/ raring/main amd64 Packages
Как Вы видите, у меня есть доступная numpy версия 1.7.1, поэтому позволяет, продолжают устанавливать его:
sudo apt-get install python-numpy
Теперь это говорит, что нам нужен цитон, позволяет проверке, если тот пакет является availabe:
apt-cache policy cython cython: Installed: (none) Candidate: 0.17.4-0ubuntu1 Version table: 0.17.4-0ubuntu1 0 500 http://archive.ubuntu.com/ubuntu/ raring/main amd64 Packages
У нас есть он, мы устанавливаем его:
sudo apt-get install cython
Действительно заметьте, что существуют другие пакеты, которые являются зависимостью, которые устанавливаются также.
Достаточно странно нам также нужен scipy модуль также:
sudo apt-get install python-scipy
Тестирование. Открытый 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()
Вышеупомянутое, должен быть без ошибок. Если что-то пошло не так, как надо, поднимитесь и прочитайте руководство снова, Вы забыли/пропустили шаг.
При загрузке источников КЛАССА с их страницы перейдите к каталогу в терминале и untar это и сделайте его:
cd where/the/tar/is tar zxf class_v2.0.2.tar.gz cd class_v2.0.2 make
Здесь мы будем ожидать, до завершено. После того как это сделано, мы переходим к каталогу Python и запускаем волшебство. Не перемещаясь из каталогов выполняет это:
cd python python setup.py build python setup.py install --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()
Все хорошо cozzy до здесь.
Теперь время истины, загрузите monthypython tarball в Вашем каталоге кода:
cd ~ mkdir code cd code 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.
Это изменение важно. Вы помните, где Вы установили КЛАСС? Теперь необходимо ли сказать 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/'
Сохраните файл и выход.
Тест montepython! Если бы все было в порядке, то необходимо смочь работать code/MontePython.py --help
в Вашем montepythong каталоге и все должно работать:
~/src/montepython$ code/MontePython.py --help usage: MontePython.py [-h] [-N number of steps] [-o output folder] [-p input param file] [-c input cov matrix] [-j jumping method] [-f jumping factor] [-conf configuration file] [-chain_number chain number] [-r restart from chain] [-bf restart from best fit file] [-info [compute information of desired file [compute information of desired file ...]]] [-bins desired number of bins, default is 20] [-no_mean] [-comp comparison folder] [-extra plot file for custom needs] [-noplot] [-all] [-ext change extension for the output file] [-fontsize desired fontsize, default is 15] [-ticksize desired ticksize, default is 13] Monte Python, a Monte Carlo code in Python optional arguments: -h, --help show this help message and exit -N number of steps -o output folder -p input param file -c input cov matrix -j jumping method -f jumping factor -conf configuration file -chain_number chain number -r restart from chain -bf restart from best fit file -info [compute information of desired file [compute information of desired file ...]] -bins desired number of bins, default is 20 -no_mean -comp comparison folder -extra plot file for custom needs -noplot -all -ext change extension for the output file -fontsize desired fontsize, default is 15 -ticksize desired ticksize, default is 13
С этим у Вас есть montepython, установленный и готовый прокрутиться!