Проблема с компиляцией и установкой модуля cantera python
Я пытаюсь установить Cantera как модуль Python в Ubuntu Linux. Для справки я использовал следующие инструкции: Установка Cantera. После запуска ./preconfig
а также make
Я получаю следующую ошибку:
fatal error: numarray/arrayobject.h: No such file or directory
Согласно файлу предварительной настройки,
# If numpy was installed using the --home option, set this to the
# home directory for numpy. This will be needed for all numpy installations
# that don't put the include files into python's native include directory.
#NUMPY_HOME=${NUMPY_HOME:="$HOME/python_packages"}
и я использую студенческую версию Enthought Python Distribution, поэтому я подумал, что, возможно, мне нужно изменить последнюю строку на:
NUMPY_HOME=${NUMPY_HOME:="/usr/local/EPD/lib/python2.7/site-packages/"}
но это не работает. Я все еще получаю ту же ошибку. Мысли? Я установил python-dev, чтобы исправить предыдущую ошибку, так что это не так.
3 ответа
Я нашел исправление. Следуя этим инструкциям, которым я ранее следовал, я заставил его работать. Разница в том, что в прошлый раз я скачал файл tar.gz, и на этот раз я использовал хранилище subversion, которое, я думаю, может быть более обновленным. В любом случае, это сработало, и мне не нужно было менять стандартную команду python.
Изменить: мне нужно изменить это по умолчанию на:
PYTHON_CMD=${PYTHON_CMD:="/usr/local/EPD/bin/python"}
Я думаю, что это хорошая идея также опубликовать инструкции, чтобы они были доступны здесь для других пользователей:
Первый шаг - установить любые зависимости. Это обрабатывается с помощью apt-get: sudo apt-get install subversion g++ gfortran python2.6-dev python-numpy libsundials* graphviz
Следующим шагом является получение источника для cantera. Это можно сделать, загрузив файл cantera-1.8.0-beta-tar.gz с сайта cantera, чтобы проверить последнюю версию с svn svn checkout http://cantera.googlecode.com/svn/cantera18/trunk/ cantera
Перейдите в каталог cantera (svn checkout или unararred/gunzipped cantera-1.8.0)
Отредактируйте файл с именем preconfig и убедитесь, что следующие строки включены, комментируя / редактируя
PYTHON_PACKAGE=${PYTHON_PACKAGE:="полный"}
USE_NUMPY = $ {USE_NUMPY: = "у"}
SUNDIALS_VERSION = $ {SUNDIALS_VERSION: = '2,3'}
Then in a terminal run the following commands:
./preconfig
make
sudo make install
source ~/setup_cantera
If every thing went well you should be able to import the Cantera module in python:
python
>>>from Cantera import *
У вас наверное несколько Python
дистрибутивы на вашей коробке Ubuntu. Для того, чтобы использовать EPD
установить Cantera
Вы должны четко указать, какой дистрибутив использовать:
PYTHON_CMD=${PYTHON_CMD:="/usr/local/EPD/bin/python"}
Каждый дистрибутив имеет свой site-packages
каталог, поэтому, указав PYTHON_CMD
Вы также указываете, какие site-packages
использовать. когда Numpy
установлен, он также устанавливает интерфейсы для Numarray
вsite-packages/numpy/core/include/numpy
, так что нет необходимости скачивать Numarray
, Также, numpy
установлен в site-packages
каталог EPD
, так NUMPY_HOME
(который используется только когда numpy
не устанавливается в каталог по умолчанию) должен быть оставлен без изменений. Надеюсь это поможет.
Мы никогда не заставляли его работать, просто устанавливая переменную include в pre_config. Вместо этого мы делаем:
...
USE_NUMPY=${USE_NUMPY:="y"}
if [ "$USE_NUMPY" = "y" ]; then
export NUMPY_INC_DIR=`python -c 'import numpy; print numpy.get_include()'`
fi
У нас не было никаких проблем, так как мы начали это включать.