Как мой заголовок говорит, я пытаюсь разработать расширение C для Python. Я выполнил этот учебник здесь, и я запустил скрипт setup.py. Как бы то ни было, когда я запускаю интерпретатор python и пытаюсь импортировать мой недавно созданный модуль, я получаю ошибку компоновщика undefined: py_BuildValue. Я также попытался скомпилировать его сам, и я получил те же ошибки плюс ошибка, говорящая о том, что Py_InitModule3 не определен. Я установил оба python3.2-dev и python3-dev. Вот мой test.c код:Ошибка компоновщика: расширения C/C++ для python
#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'])])
Охммм. Я следил за учебником. Infact Коди копируется и вставляется. Но я думаю, что это может быть Спасибо. – rady
Я продолжил это. Мне известны такие глупые вещи, но, похоже, это не проблема. – rady
@rady: Вы уверены, что это та же ошибка? Когда я пытаюсь скомпилировать ваш код, но исправляю капитализацию 'Py_BuildValue', ошибка перемещается, чтобы построить примерно' Py_InitModule3', что понятно, так как это функция Python 2, в то время как вы пытаетесь скомпилировать для Python 3. – Dolda2000