Расширение Python C в пакете - не работает? - PullRequest
2 голосов
/ 24 февраля 2012

Я работаю над упаковкой своего расширения Python C и у меня возникают проблемы:

.
|-- c_ext/
|   |-- __init__.py
|-- c_src/
setup.py

С помощью этого setup.py

from distutils.core import setup, Extension

setup( name = "Utilities",
       version = '1.0',
       description = ('Various utils'),
       packages = ["utils"],
       ext_modules = [Extension("utils.c_ext", ['c_src/c_extmodule.c'])]
       )

я могу собрать без проблемно после установки я не могу импортировать свой модуль, я просто получаю ImportError.

Я уверен, что это что-то тривиальное, так чего мне не хватает?

Заранее спасибо!

1 Ответ

0 голосов
/ 17 марта 2012

У вас есть функция в вашем модуле со следующей подписью:

PyMODINIT_FUNC initc_ext(void);

Когда вы импортируете расширение C, оно вызывает функцию init, где это точное имя расширения.(Обратите внимание, что согласно соглашению расширения C должны называться как-то как _foo, и вы получите функцию, подобную init_foo)

Точная ошибка также поможет лучше диагностировать это.

...