Проблема с компиляцией и установкой модуля 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

У нас не было никаких проблем, так как мы начали это включать.

Другие вопросы по тегам