Точно так же поздний ответ ... но я продолжал искать свой путь, в частности, к этому вопросу.Вероятно, это связано с проблемой несоответствия имен, к которой обращается Дологан.
В моем случае произошло то, что я адаптировал пример, который я получил для работы, и получил ошибку module does not define init function
.Это было проверено с помощью (например)
нм -m build / lib.macosx-10.9-x86_64-2.7 / myproj.so
В результатах этой команды я искалдля 'init' и найдено
000000000000c0d0 (__TEXT, __ text) external _initexample
Я удалил все экземпляры 'example' из моего setup.py
и файла .pyx, но это сохранялось даже после удаления расширения из site-packages
, удаления папок build и dist и т. д. В конце концов я обнаружил, что файл .cpp, сгенерированный из моего файла .pyx, все еще ссылается на имя класса в примере.Как только я перезапустил свой setup.py
, импорт работает, и, действительно, .so файл включает
000000000000c0a0 (__TEXT, __ текст) external _initmyproj