At Wednesday 6/12/2006 13:41, mahdieh saeed wrote:
I want to define extention module that connect to berkeley db.
You know support for Berkeley DB comes with the standard library,
don't you? Look at the bsddb module.
---------------------------------------------------------------------------------------------------------------
function for define extention module is like this:
name=importBDB.c
------------------------------------------------------------------------
#include <Python.h>
#include <db.h>
CreateDatabase(char *);
static PyObject
*insert_data(PyObject *self,PyObject *args) {
char *databasename;
if (!PyArg_ParseTuple(args, "s", &databasename)) {
return NULL;
}
CreateDatabase(databasename);
Py_RETURN_NONE;
}
static PyMethodDef data_methods[] = {
{ "data", (PyCFunction)insert_data, METH_VARARGS, NULL },
{ NULL, NULL, 0, NULL }
};
PyMODINIT_FUNC initdata() {
Py_InitModule3("data", data_methods, "My first extension module.");
}
----------------------------------------------------------------------------------------------------------
Given that code, the source should be called data.c (not an absolute
requisite, but at least it's easier that way).
my compiler is gcc and compiling it with this command:
gcc -shared -I/usr/local/include/python2.4
-I/usr/local/BerkeleyDB.4.5/include \ importBDB.c BDB.c \
-L/usr/local/BerkeleyDB.4.5/lib -ldb-4.5 -o insert.so
there is an error occurs like this:
gcc: importBDB.c: No such file or directory
gcc: -L/usr/local/BerkeleyDB.4.5/lib: No such file or directory
I know problem for compiler please help me
What are those \ for? gcc is trying to compile something with a space
in front of the name...
Remove them and try again.
Why insert.so?
Note that this has nothing to do with Python...
--
Gabriel Genellina
Softlab SRL
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
--
http://mail.python.org/mailman/listinfo/python-list