diff options
author | Guido van Rossum <guido@python.org> | 1998-07-27 13:48:07 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-07-27 13:48:07 (GMT) |
commit | 8b2b3ce4be9adcf2c177d24fde9d984158971adf (patch) | |
tree | 248c387370f035b9403b562d6ff083ad3ea16f2f | |
parent | 76310fcc475ce58b3c8495a963519237722e2860 (diff) | |
download | cpython-8b2b3ce4be9adcf2c177d24fde9d984158971adf.zip cpython-8b2b3ce4be9adcf2c177d24fde9d984158971adf.tar.gz cpython-8b2b3ce4be9adcf2c177d24fde9d984158971adf.tar.bz2 |
Two changes:
(1) Use Py_GetPythonHome() instead of getenv("PYTHONHOME");
(2) Mark Hammond's patch to search for .pyc/.pyo landmark as well.
-rw-r--r-- | PC/getpathp.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/PC/getpathp.c b/PC/getpathp.c index 48912f5..f0714b5 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c @@ -307,7 +307,7 @@ calculate_path() char argv0_path[MAXPATHLEN+1]; char *buf; int bufsz; - char *pythonhome = getenv("PYTHONHOME"); + char *pythonhome = Py_GetPythonHome(); char *envpath = getenv("PYTHONPATH"); #ifdef MS_WIN32 char *machinepath, *userpath; @@ -329,8 +329,19 @@ calculate_path() if (pythonhome == NULL || *pythonhome == '\0') { if (search_for_prefix(argv0_path, LANDMARK)) pythonhome = prefix; - else - pythonhome = NULL; + else { + /* Couldnt find a source version - lets see if a compiled version exists. */ + char LANDMARK_Look[MAX_PATH+1]; + strcpy(LANDMARK_Look, LANDMARK); + /* Turn it into ".pyc" or ".pyc" depending on the current mode. */ + strcat(LANDMARK_Look, Py_OptimizeFlag ? "o": "c"); + /* And search again */ + if (search_for_prefix(argv0_path, LANDMARK_Look)) + pythonhome = prefix; + else + /* Give up in disgust - just use the default! */ + pythonhome = NULL; + } } else strcpy(prefix, pythonhome); @@ -478,3 +489,4 @@ Py_GetProgramFullPath() calculate_path(); return progpath; } + |