首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译和安装cantera python模块时出现问题

编译和安装cantera python模块时出现问题
EN

Stack Overflow用户
提问于 2011-11-18 06:37:06
回答 3查看 1.6K关注 0票数 3

我正在尝试将Cantera作为一个python模块安装在Ubuntu linux中。作为参考,我使用了以下说明:Installing Cantera。在运行./preconfigmake之后,我得到以下错误:

代码语言:javascript
复制
fatal error: numarray/arrayobject.h: No such file or directory

根据预配置文件,

代码语言:javascript
复制
# 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的学生版,所以我想也许我需要将最后一行改为:

代码语言:javascript
复制
NUMPY_HOME=${NUMPY_HOME:="/usr/local/EPD/lib/python2.7/site-packages/"}

但这是行不通的。我仍然得到相同的错误。有什么想法?我安装python-dev是为了修复之前的一个bug,所以不是这样的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-19 02:44:19

我找到了一个解决方法。通过遵循我之前遵循的these instructions,我让它工作了。不同之处在于,上次我下载了tar.gz文件,而这次我使用的是subversion存储库,我猜它可能更新。无论如何,它起作用了,我也不需要改变默认的python命令。

编辑:我确实需要将其从默认更改为:

代码语言:javascript
复制
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站点下载cantera-1.8.0-beta-tar.gz来完成,我们可以从svn svn checkout http://cantera.googlecode.com/svn/cantera18/trunk/ cantera检查最新版本。更改cantera目录( svn checkout或untarred/gunzipped cantera-1.8.0)编辑名为preconfig的文件,并通过注释/编辑PYTHON_PACKAGE=${PYTHON_PACKAGE:="full"} USE_NUMPY=${USE_NUMPY:="y"} SUNDIALS_VERSION=${SUNDIALS_ version :='2.3'}确保包含以下行

代码语言:javascript
复制
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 *
票数 1
EN

Stack Overflow用户

发布于 2011-11-18 14:17:38

你的Ubuntu机器上可能有几个Python发行版。为了使用EPD安装Cantera,您应该明确地告诉它要使用哪个发行版:

代码语言:javascript
复制
PYTHON_CMD=${PYTHON_CMD:="/usr/local/EPD/bin/python"}

每个发行版都有自己的site-packages目录,因此通过指定PYTHON_CMD,还可以指定要使用的site-packages。安装Numpy时,它还会安装从Numarraysite-packages/numpy/core/include/numpy的接口,因此无需下载Numarray。此外,numpy安装在EPDsite-packages目录中,因此NUMPY_HOME (仅当numpy未安装在默认目录中时使用)应保持不变。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-12-06 12:45:03

我们从来没有通过在pre_config中设置包含变量来让它工作。相反,我们会这样做:

代码语言:javascript
复制
...
USE_NUMPY=${USE_NUMPY:="y"}

if [ "$USE_NUMPY" = "y" ]; then
    export NUMPY_INC_DIR=`python -c 'import numpy; print numpy.get_include()'`
fi

自从我们开始包含它以来,就没有任何问题了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8175393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档