[C++-sig] How to get output from python embedded in VC++

Stefan Seefeld stefan at seefeld.name
Sat Jul 22 13:01:29 EDT 2017


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...



More information about the Cplusplus-sig mailing list