#include "Python.h" #include "osdefs.h" static char *prefix, *exec_prefix, *progpath, *module_search_path=NULL; static void calculate_path() { char *pypath = getenv("Python$Path"); if (pypath) { int pathlen = strlen(pypath); module_search_path = malloc(pathlen + 1); if (module_search_path) strncpy(module_search_path, pypath, pathlen + 1); else { fprintf(stderr, "Not enough memory for dynamic PYTHONPATH.\n" "Using default static PYTHONPATH.\n"); } } if (!module_search_path) module_search_path = "<Python$Dir>.Lib"; prefix = "<Python$Dir>"; exec_prefix = prefix; progpath = Py_GetProgramName(); } /* External interface */ char * Py_GetPath() { if (!module_search_path) calculate_path(); return module_search_path; } char * Py_GetPrefix() { if (!module_search_path) calculate_path(); return prefix; } char * Py_GetExecPrefix() { if (!module_search_path) calculate_path(); return exec_prefix; } char * Py_GetProgramFullPath() { if (!module_search_path) calculate_path(); return progpath; }