Ошибка компоновщика: расширения C / C ++ для python

0

Как говорит мой заголовок, я пытаюсь разработать расширение C для Python. Я выполнил этот учебник здесь, и я запустил скрипт setup.py. Как бы то ни было, когда я запускаю интерпретатор python и пытаюсь импортировать мой недавно созданный модуль, я получаю ошибку компоновщика undefined: py_BuildValue. Я также попытался скомпилировать его сам, и я получил те же ошибки плюс ошибка, говорящая о том, что Py_InitModule3 не определен. Я установил оба python3.2-dev и python3-dev. Вот мой код test.c:

#include <python3.2/Python.h>
static PyObject* Test(PyObject* self){
    return py_BuildValue("s","This is a test and my first trip into the world of python bindings!!");
}

static PyMethodDef test_funcs[] ={{"testExtensions",(PyCFunction)Test, METH_NOARGS,"This is my First Extension!!"},{NULL}};

 void initTest(void){
    Py_InitModule3("Test", test_funcs, "Extension module example!");
}

И мой setup.py код:

from distutils.core import setup, Extension
setup(name='Test', version='1.0',  \
    ext_modules=[Extension('Test', ['test.c'])])
Теги:
python-3.x

1 ответ

2

Это потому, что функция называется Py_BuildValue а не py_BuildValue. C чувствителен к регистру. Если вы еще раз просмотрите свои компилируемые сообщения, вы, вероятно, также получите предупреждение о том, что функция объявляется неявно.

  • 0
    О, хм. Я следовал за учебником. Infact the cody копируется и вставляется. Но я думаю, что это может быть спасибо.
  • 0
    Я следил за этим. Я был известен тем, что делал такие глупые вещи, но, похоже, проблема не в этом.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню