Mayavi:从源代码安装 Python 相关内容

日期2007-01-21(最后修改),2006-10-25(创建)

按照 http://www.enthought.com/enthought/wiki/GrabbingAndBuilding,您需要从源代码构建/安装 VTK 5.0 和一些 Python 扩展。

对于任何给定的 Python 模块或 VTK,所有必要的安装信息都可以在其网页上找到。

对于没有耐心的人,这些信息在这里总结。

关于配置脚本的说明:如果您没有指定安装包的目的地,它们将默认安装在 /usr/local。

我们选择将它们安装在个人目录中,例如 ~/Mayavi2。因此,我们将环境变量 DESTDIR 设置为 ~/Mayavi2,并在后面将其称为 DESTDIR。

在类似 sh 的 shell 中,输入

In [ ]
export DESTDIR=~/Mayavi2

在类似 csh 的 shell 中,输入

In [ ]
setenv DESTDIR ~/Mayavi2

假设您将所有 tarball 源代码下载并解压缩到一个名为 src/ 的特定目录中。

安装 python2.3/python2.4

https://www.pythonlang.cn/download/releases/2.3.5 下载 Python-2.3.5.tar.bz2 或从 https://www.pythonlang.cn/download/releases/2.4.3 下载 Python-2.4.3.tar.bz2,并将它们解压缩到 src/ 中。

In [ ]
cd src && tar xvfj Python-2.4.3.tar.bz2

然后运行

In [ ]
cd Python-2.4.3/ && ./configure --enable-shared --enable-unicode=ucs4 --prefix=$DESTDIR

然后您可以执行 make & make install

In [ ]
make && make install

安装 VTK 5.0

http://public.kitware.com/VTK/get-software.php 下载 vtk-5.0.0.tar.gz 和 vtkdata-5.0.0.tar.gz,并将它们解压缩到 src/ 中。

In [ ]
cd src/ && tar xvfz vtk-5.0.0.tar.gz && tar xvfz vtkdata-5.0.0.tar.gz

注意:在继续之前必须安装 cmake 包。

运行

In [ ]
cd VTK && ccmake .

以创建所需的 Makefile。

按下“c”进行配置。

然后在选定项目上按“enter”键切换标志。

如果您在 ccmake 找不到它们,则应指定一些信息,特别是关于一些库的位置(tcl/tk 库 + 开发包以及您刚刚安装的 python2.3/python2.4),以及目标位置(将其设置为 DESTDIR)。

不要忘记将标志“VTK_WRAP_PYTHON”设置为开启(如果您想使用 Tcl/Tk,则将“VTK_WRAP_TCL”也设置为开启)。

In [ ]
BUILD_EXAMPLES                   ON
BUILD_SHARED_LIBS                ON
CMAKE_BACKWARDS_COMPATIBILITY    2.0
CMAKE_BUILD_TYPE
CMAKE_INSTALL_PREFIX             DESTDIR
VTK_DATA_ROOT                    DESTDIR/VTKData
VTK_USE_PARALLEL                 OFF
VTK_USE_RENDERING                ON
VTK_WRAP_JAVA                    OFF
VTK_WRAP_PYTHON                  ON
VTK_WRAP_TCL                     ON

按“c”继续配置。

In [ ]
PYTHON_INCLUDE_PATH             *DESTDIR/include/python2.4
PYTHON_LIBRARY                  *DESTDIR/lib/libpython2.4.so
TCL_INCLUDE_PATH                */usr/include/tcl8.4
TCL_LIBRARY                     */usr/lib/libtcl8.4.so
TK_INCLUDE_PATH                 */usr/include/tcl8.4
TK_LIBRARY                      */usr/lib/libtk8.4.so
VTK_USE_RPATH                   *OFF
BUILD_EXAMPLES                   ON
BUILD_SHARED_LIBS                ON
CMAKE_BACKWARDS_COMPATIBILITY    2.0
CMAKE_BUILD_TYPE
CMAKE_INSTALL_PREFIX             DESTDIR
VTK_DATA_ROOT                    DESTDIR/VTKData
VTK_USE_PARALLEL                 OFF
VTK_USE_RENDERING                ON
VTK_WRAP_JAVA                    OFF
VTK_WRAP_PYTHON                  ON
VTK_WRAP_TCL                     ON

注意:您可以按“t”获取更多配置选项。

按“c”然后按“g”退出配置,然后输入

In [ ]
make && make install

安装 wx-Python2.6

https://sourceforge.net/project/showfiles.php?group_id=10718 下载 wxPython-src-2.6.3.2.tar.gz 并将其解压缩到 src/。

In [ ]
cd src/ && tar xvfz wxPython-src-2.6.3.2.tar.gz

注意:您应该安装了 GTK 2,即您应该安装了 libgtk-2.6.* `和` libgtk2.6.*-dev 包。

然后运行

In [ ]
cd wxPython-src-2.6.3.2/ && ./configure --enable-unicode --with-opengl --prefix=$DESTDIR

然后您可以执行

In [ ]
make; make -C contrib/src/animate; make -C contrib/src/gizmos; make -C contrib/src/stc

或者按照 wx-Python2.6 网页上的说明,创建一个小的脚本,该脚本自动运行上面的命令。

然后安装所有

In [ ]
make install; make -C contrib/src/animate install ; make -C contrib/src/gizmos install; make -C contrib/src/stc install

要构建 python 模块

In [ ]
cd wxPython

并运行

In [ ]
./setup.py build_ext --inplace --debug UNICODE=1

并安装它们

In [ ]
./setup.py install UNICODE=1 --prefix=$DESTDIR

安装 scipy 0.5 & numpy 1.0

https://scipy.org.cn/Download 下载 scipy-0.5.1.tar.gz。

在安装 scipy 之前,您必须下载并安装

* numpy-1.0.tar.gz (http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103)

* Atlas 库 (您可以使用您的包管理器安装它,无需在 src/ 中构建它)

安装这些 python 扩展不需要任何特殊选项。

要在我们的 \$DESTDIR 中安装这些包,只需更改目录并输入

In [ ]
./setup.py install --prefix=$DESTDIR

就是这样,伙计们!

在安装 !MayaVi2 之前,您必须设置一些环境变量,以告诉 !MayaVi2 可以在哪里找到 python 扩展。

在类似 sh 的 shell 中,输入

In [ ]
export PYTHONPATH=$DESTDIR:$PYTHONPATH
export LD_LIBRARY_PATH=$DESTDIR:$LD_LIBRARY_PATH

在类似 csh 的 shell 中,输入

In [ ]
setenv PYTHONPATH ${DESTDIR}:${PYTHONPATH}
setenv LD_LIBRARY_PATH ${DESTDIR}:${LD_LIBRARY_PATH}

部分作者:FredericPetit