issue 9910

Add a Py_SetPath api to override magic path computations when starting up python.
This commit is contained in:
Kristján Valur Jónsson 2010-09-27 05:32:54 +00:00
parent 42ef4b1f4c
commit 3b69db27d7
4 changed files with 68 additions and 2 deletions

View file

@ -90,6 +90,9 @@
* known use of sys.prefix and sys.exec_prefix is for the ILU installation
* process to find the installed Python tree.
*
* An embedding application can use Py_SetPath() to override all of
* these authomatic path computations.
*
* NOTE: Windows MSVC builds use PC/getpathp.c instead!
*/
@ -771,6 +774,23 @@ calculate_path(void)
/* External interface */
void
Py_SetPath(const wchar_t *path)
{
if (module_search_path != NULL) {
free(module_search_path);
module_search_path = NULL;
}
if (path != NULL) {
extern wchar_t *Py_GetProgramName(void);
wchar_t *prog = Py_GetProgramName();
wcsncpy(progpath, prog, MAXPATHLEN);
exec_prefix[0] = prefix[0] = L'\0';
module_search_path = malloc((wcslen(path) + 1) * sizeof(wchar_t));
if (module_search_path != NULL)
wcscpy(module_search_path, path);
}
}
wchar_t *
Py_GetPath(void)