Re: [PATCH 2/2] Add gdb_libdir/python- in front of Python search path.

Tom Tromey
2010-05-21T16:08:58Z

>>>>> "Doug" == Doug Evans <dje@google.com> writes:

Doug> I think(!) this is a better approach. Could be wrong of course. :-)
Doug> I think adding one directory to sys.path is insufficient, and from
Doug> what I've read it seems like Py_SetProgramName is the preferred
Doug> solution to this problem.

I read through this thread. I also prefer this approach, mostly because
it doesn't change sys.path for the distro case.

Doug> This patch doesn't currently handle your case, where the relationship
Doug> between the location of python and gdb at build time is different than
Doug> at runtime. I think the solution to that is another config parameter
Doug> to specify where to find python at run time. Currently, when given a
Doug> path, --with-python specifies where to find python at build time, and,
Doug> for now, also at runtime.

According to the docs you can also override some Py_ functions to allow
more complete control:

The embedding application can steer the search by calling
`Py_SetProgramName(FILE)' _before_ calling `Py_Initialize()'. Note
that `PYTHONHOME' still overrides this and `PYTHONPATH' is still
inserted in front of the standard path. An application that requires
total control has to provide its own implementation of `Py_GetPath()' ,
`Py_GetPrefix()' , `Py_GetExecPrefix()' , and `Py_GetProgramFullPath()' (all
defined in `Modules/getpath.c').

Tom