我想在Python3中使用cgal-swig-bindings,并且想知道如何正确地更改安装过程,以便Python3可以使用。我让这个工作,但可能有更好的方法来实现这一目标。 (我没有使用Swig或提升的经验。)
我正在按照cgal-swig-bindings的安装说明进行操作:https://github.com/CGAL/cgal-swig-bindings/wiki/Installation 在Ubuntu机器上。
我开始工作,以便使用默认的python2.7运行cgal-swig-bindings / examples / python / triangulation_prog1.py。
使用Python3运行时,我得到了:
dynamic module does not define module export function
我设法通过更改cgal-swig-bindings / CMakeLists.txt包含以下内容来破解它:
SET(PYTHON_INCLUDE_PATH /usr/include/python3.5m)
SET(PYTHON_LIBRARIES /usr/lib/x86_64-linux-gnu/libpython3.5m.so)
SET(PYTHON_EXECUTABLE /usr/bin/python3.5m)
SET(PYTHON_INCLUDE_DIR /usr/include/python3.5m)
SET(Python_ADDITIONAL_VERSIONS 3.5)
FIND_PACKAGE(PythonInterp 3 REQUIRED)
FIND_PACKAGE(PythonLibs 3 REQUIRED)
只需使用:
FIND_PACKAGE(PythonInterp 3 REQUIRED)
FIND_PACKAGE(PythonLibs 3 REQUIRED)
还不够。
运行cmake并再次制作适用于Python3的东西(现在Python2失败了,这对我来说还可以)。即,triangulation_prog1.py可以使用Python3运行。
我使用了以下cmake命令:
cmake -DCGAL_DIR=/usr/lib/x86_64-linux-gnu/cmake/CGAL -DBUILD_JAVA=OFF -DPYTHON_OUTDIR_PREFIX=../../examples/python ../..
有没有更好的方法来启用Python3支持?也许,通过在cmake上使用一些命令行参数?