mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
issue 9910
Add a Py_SetPath api to override magic path computations when starting up python.
This commit is contained in:
parent
42ef4b1f4c
commit
3b69db27d7
4 changed files with 68 additions and 2 deletions
|
|
@ -51,6 +51,9 @@
|
|||
exe, some very strange installation setup) you get a path with
|
||||
some default, but relative, paths.
|
||||
|
||||
* An embedding application can use Py_SetPath() to override all of
|
||||
these authomatic path computations.
|
||||
|
||||
---------------------------------------------------------------- */
|
||||
|
||||
|
||||
|
|
@ -79,6 +82,9 @@
|
|||
* The approach is an adaptation for Windows of the strategy used in
|
||||
* ../Modules/getpath.c; it uses the Windows Registry as one of its
|
||||
* information sources.
|
||||
*
|
||||
* Py_SetPath() can be used to override this mechanism. Call Py_SetPath
|
||||
* with a semicolon separated path prior to calling Py_Initialize.
|
||||
*/
|
||||
|
||||
#ifndef LANDMARK
|
||||
|
|
@ -654,6 +660,24 @@ 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);
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue