issue 9910
Add a Py_SetPath api to override magic path computations when starting up python.
diff --git a/Modules/getpath.c b/Modules/getpath.c
index c55b3d7..6f2e537 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -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 @@
 
 
 /* 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)