Boost logo

Boost Users :

Subject: Re: [Boost-users] [python] Adding a path to sys.path
From: Robert Dailey (rcdailey_at_[hidden])
Date: 2008-10-08 15:09:32


On Wed, Oct 8, 2008 at 11:57 AM, Robert Dailey <rcdailey_at_[hidden]> wrote:

> Hi,
>
> I was wondering if the code below is correct for adding a path to sys.path
> in Python. Note that this will occur before any modules have been
> executed/imported through Boost.Python. I'm also embedding the interpreter,
> which is why I am doing this. I'm not sure how it can obtain the
> sys.__dict__ when I haven't imported sys, so explanation on this would be
> helpful for me.
>
>
> using namespace boost::python;
> using namespace boost::filesystem;
>
> object sys = GetNamespace( "sys" );
>
> list syspath( sys["path"] );
> syspath.insert( 0, complete( path ).file_string() );
> sys["path"] = syspath;
>
>
> Note that "path" is a boost::filesystem::path object containing the path I
> wish to add to sys.path.
>

Forgot to provide the definition of GetNamespace(). It is below:

    boost::python::dict GetNamespace( char const* mod )
    {
        using namespace boost::python;
        dict moduleNamespace( import( mod ).attr( "__dict__" ) );
        return moduleNamespace;
    }



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net