On Jul 14, 1:47 am, hartley <hartle...@gmail.com> wrote:
> I'm very new at wrapping Python/C, and I have run into some problems.
>
> I have one python module that provides me with a list (provideBuffer
> in provideBuff.py):
>
>  Py_Initialize();
>         pName = PyString_FromString("provideBuff");
>         pModule = PyImport_Import(pName);
>
>         pFunc = PyObject_GetAttrString(pModule,"provideBuffer");
>
>         pValue = PyObject_CallObject(pFunc,NULL);
>
> pValue is now a PyList - i've even verified this with:
>
> int a = PyList_Check(pValue);
>         printf("%d\n", a);
>
> However, I want to send this PyList to another python module,

Please explain "send" ... do you mean the C equivalent of the Python
statement C_embedding.buff = the_pylist ?

BTW C-embedding would trigger a syntax error in Python source; best to
avoid ...

> but I
> don't know how to do this. Initially I though I could just do like
> above, only swapping NULL with pValue, but that is not working.
>
> pName2 = PyString_FromString("C-embedding");
> pModule2 = PyImport_Import(pName2);
> pFunc2 = PyObject_GetAttrString(pModule2,"buff");

Get?? Do you want Set? Is buff a Python function? Or is it the
destination of the "sending"? Any good reason for not checking the
return value for an error? [Rhetorical question; answer == "No"]

> pValue2 = PyObject_CallObject(pFunc2,pValue);

CallObject?? You used this before because you had a function and
wanted to call it because it returned you a value .... now you want to
do one of (in Python terms)

value = amodule.anattr
value = getattr(amodule, "anattr")

or

amodule.anattr = value
setattr(amodule, "anattr", value)


> pValue2 is now False!

False?? Do you mean the C NULL?

> So i guess i cannot pass pValue as an argument
> to PyObject_CallObject when i want to pass an python list as an
> argument. But how must a go about to make this work?

It's mainly just a matter of (1) knowing what you want to do (2)
picking the API that does what you want (3) checking the returned
value for error after every call.

HTH,
John

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to