ROS Cython: модуль Dynami c не определяет функцию экспорта модуля (PyInit _...) - PullRequest
0 голосов
/ 17 июня 2020

Я сделал 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. но все та же проблема .....

...