[C++-sig] Re: boost:python:embedding
Dirk Gerrits
dirk at gerrits.homeip.net
Sat May 3 18:46:24 CEST 2003
Dirk Gerrits wrote:
> Dirk Gerrits wrote:
> >
>
>> ... but I personally use a home-made
>> boost::python::interpreter class. (See attachments.) I would really
>> love to see it in Boost.Python but perhaps it is not "up to Boost
>> standards" at this point?
>
>
> Hmm, a bit of an understatement. The execfile code is giving me access
> violations. I'll look into it.
>
Okay, this seems to fix it:
void interpreter::execfile(char const* filename, dict& globals, dict&
locals)
{
FILE* file = 0;
handle<> py_file(allow_null( PyFile_FromString(filename, "r") ));
if (py_file)
file = PyFile_AsFile(py_file.get());
if (!file)
throw std::runtime_error("Failed to open file: " +
std::string(filename));
handle<> result(
PyRun_File(file, filename, Py_file_input, globals.ptr(),
locals.ptr()) );
}
Apparently, my C library is incompatible with the one my Python
installation was built with.
Anyway, it would be nice if this sort of low-level stuff was a part of
Boost.Python, so that I wouldn't have to make a fool of myself by
getting it wrong and posting about it. ;)
Dirk Gerrits
More information about the Cplusplus-sig
mailing list