Hi Stefan,
I still got a assertion failed at Py_Initialize(). Below is the message.
Program: C:\Python35\python35_d.dll
File: ..\Objects\object.c
Line: 84
Expression: (op->_ob_prev == NULL) == (op->_ob_next == NULL)
I also pasted mo code below. This function is invoked by a button click function. No other codes around it.
int runBoostPython()
{
Py_Initialize();
try {
//boost::python::object main_module =
// boost::python::import("__main__");
//boost::python::object main_namespace =
// main_module.attr("__dict__");
boost::python::dict main_namespace;
boost::python::object ignored = exec_file("test1.py",
main_namespace, main_namespace);
std::wstring output = boost::python::extract<std::wstring>(main_namespace["return_value"]);
}
catch (boost::python::error_already_set) {
PyErr_Print();
}
return 0;
}
Please help check it.
Thanks & Best Regards,
John.
At 2017-07-23 01:01:29, "Stefan Seefeld" <ste...@seefeld.name> wrote:
>On 21.07.2017 23:17, Jian wrote:>> Hi Imre,>>>> I tried to use boost.python as you advised. Build boost.python with >>>> But I got a error in the import.hpp as below:>> ------------------------import.hpp start>> ---------------------------------------->> namespace boost >> { >> namespace python >> {>>>> object BOOST_PYTHON_DECL import(str name)>> {>> // should be 'char const *' but older python versions don't use>> 'const' yet.>> char *n = python::extract<char *>(name);>> * python::handle<> module(PyImport_ImportModule(n)); <---here is>> where the error raised. n is "__main__"*>> return python::object(module);>> }>>>> } // namespace boost::python>> } // namespace boost>> ------------------------import.hpp>> end---------------------------------------->>>> I copied your code and just replaced 'script.py' with the name of my>> own file. I found the error raised when the code importing module>> "__main__". >>>> That's my first time to use boost.python. Could you help about this issue?>>This probably means you haven't initialized Python correctly. A good>starting point might be this example:>https://github.com/boostorg/python/blob/develop/example/quickstart/embedding.cpp>>(I'm the Boost.Python maintainer. While I'd be happy to help you using>Boost.Python, I think this is mostly orthogonal to your original>question about how to capture output generated by you embedded Python.)>>>>Best,> Stefan>>>>>-- >> ...ich hab' noch einen Koffer in Berlin...>>_______________________________________________>Cplusplus-sig mailing list>Cplu...@python.org>https://mail.python.org/mailman/listinfo/cplusplus-sig
_______________________________________________
Cplusplus-sig mailing list
Cplu...@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig