[Python-Dev] New Python Initialization API

Steve Dower steve.dower at python.org
Tue Apr 9 16:51:03 EDT 2019


On 05Apr2019 0936, Victor Stinner wrote:
> For the PyMainConfig structure idea, I cannot comment at this point. I
> need more time to think about it.
> 
> 
> About the "path configuration" fields, maybe a first step to enhance
> the API would be to add the the following function:
> 
> PyInitError PyConfig_ComputePath(PyConfig *config, const wchar *home);
> 
> where home can be NULL (and PyConfig.module_search_paths_env field
> goes away: the function reads PYTHONPATH env var internally).

Yes, I like this. Maybe pass PYTHONPATH value in as an "additional 
paths" parameter?

Basically, this function would be the replacement for "Py_GetPath()" 
(which initializes paths to the defaults the first time it is called), 
and setting the path fields in PyConfig manually is the replacement for 
Py_SetPath() (or calling the various Py_Set*() functions to make the 
default logic infer the paths you want).

Similarly, PyConfig_ComputeFromArgv() and/or 
PyConfig_ComputeFromEnviron() functions would also directly replace the 
magic we have scattered all over the place right now. It would also make 
it more obvious to the callers which values take precedence, and easier 
to see that there should be no side effects. I think it's easier to 
document as well.

Cheers,
Steve


More information about the Python-Dev mailing list