1

I'm relatively new to python and its C++ wrappers like boost python. I tried to get the OpenMesh C++ Library python bindings working with python 3.

Does anybody know if its already possible? There are some hints in the OpenMesh changelog and some tests for python 3 have been added a year ago. https://graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh/commit/c6382d800ffb9b48347e748a32e658697125d5b2

So I tried building the newest BoostPython with

./bootstrap.sh --with-libraries=signals,thread,python --with-python=/usr/bin/python3.4
./b2

Setting all the environement variables at http://www.openmesh.org/Daily-Builds/Doc/a00036.html

OpenMesh builds flawlessly a wonderful openmesh.so .

But trying to use it with Python3 interpreter outputs:

>>> import sys
>>> sys.path.append('/home/.../OpenMesh-4.1/build/Build/python')
>>> import openmesh
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define init function (PyInit_openmesh)

Python 2 works fine, so is it impossible or am I doing something wrong?

Thanks & Greets

hc_
  • 2,628
  • 1
  • 18
  • 19

2 Answers2

3

Apparently you need cmake 3.x to build with python 3.x. -> Solved :)

2

Just in case anyone stumbles on OpenMesh with Python3 again, I built it for Anaconda Python 3.5 and 3.6 and uploaded it on github.

https://github.com/qd-cae/Openmesh-Anaconda-Precompiled

codie
  • 343
  • 4
  • 12