On Thu, 01 Jul 2004 12:50:45 -0400, David Abrahams <dave@boost-consulting.com> wrote:
Graeme Lufkin <graeme.lufkin@gmail.com> writes:
I've had similar problems, and have slogged my way to figuring them out. The tutorial is wrong, at least on gcc 3.2.3.
I think the tutorial is right in CVS. Have you checked that?
http://www.boost-consulting.com/boost/libs/python/
Here's what you want: After calling Py_Initialize(), you should get the Python main namespace object by doing:
handle<> main_module(borrowed( PyImport_AddModule("__main__") )); dict main_namespace = extract<dict>(PyModule_GetDict(main_module.get()));
Seems harder than neccessary.
object main_module = object(handle<> (borrowed( PyImport_AddModule("__main__") )));
object main_namespace = main_module.attr("__dict__");
http://www.boost-consulting.com/boost/libs/python/doc/tutorial/doc /using_the_interpreter.html uses object main_module( handle<>(borrowed(PyImport_AddModule("__main__")))); instead, which does not compile with gcc 3.3, at least for me. In any case, as I already said, even when this compiles correctly, it still does not seem to execute the interpreter correctly, ie. I get the error NameError: name 'file' is not defined Can you suggest what might be the problem here? Faheem.