I try with the sample given here http://wiki.python.org/moin/boost.python/EmbeddingPython
With a C++ Class and this works, so I guess something "wrong" with the c++ dict object .... 2009/9/3 Constant Dupuis <constant.dup...@gmail.com>: > nop, i got a Segmentation fault > > I forget to say that I'm on Mac, I don't knwo if this can change somethings. > > > 2009/9/3 Mark Chandler <ad...@lodle.net>: >> Can you print iptc by it self? >> >> >> >> On 03/09/2009, at 3:41 PM, Constant Dupuis wrote: >> >>> Ok, thanks, >>> >>> Now I got a "Segmentation fault" error message when I try "print >>> iptc['Headline']". >>> >>> Is the dict object directly exposable ? Or do I have to create a >>> std::map base class ? >>> >>> Constant >>> >>> 2009/9/3 Mark Chandler <ad...@lodle.net>: >>>> >>>> when you do the exec add the main_namespace twice >>>> >>>>> object ignored = exec("print('Headline')\n print(iptc['Headline'])\n", >>>>> main_namespace,main_namespace); >>>> >>>> >>>> On 03/09/2009, at 3:12 PM, Constant Dupuis wrote: >>>> >>>>> Hi, >>>>> >>>>> I would like to expose a dictionary object instanciated in C++ to a >>>>> Python code, which manipulate the dictoinary. >>>>> And after extract the resulting modified dictionary back in C++. >>>>> >>>>> I try this : >>>>> >>>>> try { >>>>> >>>>> Py_Initialize(); >>>>> >>>>> std::cout << "Hello, World!\n"; >>>>> >>>>> dict d; >>>>> d["Headline"] = "Titre"; >>>>> >>>>> object main_module = import("__main__"); >>>>> object main_namespace = main_module.attr("__dict__"); >>>>> >>>>> main_namespace["iptc"] = ptr(&d); >>>>> >>>>> object ignored = exec("print('Headline')\n" >>>>> >>>>> "print(iptc['Headline'])\n", >>>>> main_namespace); >>>>> >>>>> >>>>> } catch( error_already_set ) { >>>>> PyErr_Print(); >>>>> } >>>>> >>>>> And here is hte output : >>>>> >>>>> Hello, World! >>>>> Headline >>>>> Traceback (most recent call last): >>>>> File "<string>", line 2, in <module> >>>>> TypeError: 'NoneType' object is unsubscriptable >>>>> >>>>> What did I missed ? >>>>> >>>>> Thanks en regards, >>>>> >>>>> Constant >>>>> _______________________________________________ >>>>> Cplusplus-sig mailing list >>>>> Cplusplus-sig@python.org >>>>> http://mail.python.org/mailman/listinfo/cplusplus-sig >>>> >>>> _______________________________________________ >>>> Cplusplus-sig mailing list >>>> Cplusplus-sig@python.org >>>> http://mail.python.org/mailman/listinfo/cplusplus-sig >>>> >>> _______________________________________________ >>> Cplusplus-sig mailing list >>> Cplusplus-sig@python.org >>> http://mail.python.org/mailman/listinfo/cplusplus-sig >> >> _______________________________________________ >> Cplusplus-sig mailing list >> Cplusplus-sig@python.org >> http://mail.python.org/mailman/listinfo/cplusplus-sig >> > _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig