Re: C API: Getting PyObject by name

2010-10-02 Thread pbienst
For reference to posterity, this is how I got it to work in the end:

  PyObject* module = PyImport_ImportModule(__builtin__);
  PyObject* obj = PyRun_String(1, Py_eval_input,
PyModule_GetDict(module), NULL);
  Py_DECREF(module);
  long d = PyLong_AsLong(obj);
  printf(long:%ld\n, d);
  Py_DECREF(obj);

Can't say I really understand it, though, all rather esoteric...

Peter

On Oct 1, 12:16 pm, pbienst peter.bienst...@gmail.com wrote:
 Here is what I tried, but it prints out '-1':

 PyObject* obj = PyRun_String(1, Py_single_input,
 PyEval_GetGlobals(), PyEval_GetLocals());
 long d = PyLong_AsLong(obj);
 printf(long:%ld\n, d);
 Py_DECREF(obj);

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


Re: C API: Getting PyObject by name

2010-10-01 Thread pbienst
Here is what I tried, but it prints out '-1':

PyObject* obj = PyRun_String(1, Py_single_input,
PyEval_GetGlobals(), PyEval_GetLocals());
long d = PyLong_AsLong(obj);
printf(long:%ld\n, d);
Py_DECREF(obj);

Peter

On Sep 30, 9:24 pm, Thomas Jollans tho...@jollybox.de wrote:
 On Thursday 30 September 2010, it occurred to pbienst to exclaim:

  Hi,

  I'm embedding Python in a C app.

  Say I do the following:

    PyRun_SimpleString(a = 1)

  Is there then a way to get access to the PyObject corresponding to a,
  only making use in C of the fact that it's called a?

  I've searched through the API docs, but I couldn't really find what I
  was looking for.

 No. Not as such. But you could use PyRun_String, or PyRun_StringFlags. You
 could then access the globals object, but I ask you, why would you want to
 bind the object to a name in the first place? Use the fact that PyRun_String
 returns a reference to the result of an expression!

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


C API: Getting PyObject by name

2010-09-30 Thread pbienst
Hi,

I'm embedding Python in a C app.

Say I do the following:

  PyRun_SimpleString(a = 1)

Is there then a way to get access to the PyObject corresponding to a,
only making use in C of the fact that it's called a?

I've searched through the API docs, but I couldn't really find what I
was looking for.

Any help most appreciated!

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


Re: C API: Getting PyObject by name

2010-09-30 Thread Thomas Jollans
On Thursday 30 September 2010, it occurred to pbienst to exclaim:
 Hi,
 
 I'm embedding Python in a C app.
 
 Say I do the following:
 
   PyRun_SimpleString(a = 1)
 
 Is there then a way to get access to the PyObject corresponding to a,
 only making use in C of the fact that it's called a?
 
 I've searched through the API docs, but I couldn't really find what I
 was looking for.

No. Not as such. But you could use PyRun_String, or PyRun_StringFlags. You 
could then access the globals object, but I ask you, why would you want to 
bind the object to a name in the first place? Use the fact that PyRun_String 
returns a reference to the result of an expression!
-- 
http://mail.python.org/mailman/listinfo/python-list