Я сделал python обертку класса c ++, похожую на здесь и здесь . но сгенерированная оболочка python может использоваться только в python2, но дает следующую ошибку в python3:
dynamic module does not define module export function (PyInit_...)
my setup.py выглядит следующим образом:
## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD
from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup
setup_args = generate_distutils_setup(
packages=['hw_interface_pkg'],
package_dir={'': 'src'},
requires=['std_msgs', 'rospy'],
language_level="3",
compiler_directives={'language_level' : "3"}
)
setup(**setup_args)
после этого потока Я пробовал добавить language_level = "3"
или compiler_directives={'language_level' : "3"}
к setup_args , но никто не решил проблему.
мой файл pyx также выглядит так:
cdef extern from "remote_hw.h":
cdef cppclass ROBOTHardwareInterface:
ROBOTHardwareInterface() except +
double c_fibonacci(double n);
cdef class PyHWInterface:
cdef ROBOTHardwareInterface c_obj
def __cinit__(self):
pass
def fibonnaci_func(self,n):
return self.c_obj.c_fibonacci(n)
------------- редактировать
Я убедился, что вызывается setup.py по python3. но все та же проблема .....