diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-12 14:20:59 +0000 |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-12 14:20:59 +0000 |
commit | 171ba0504aa778d81346ea56fc9000b29d4d3e1d (patch) | |
tree | 587a3ad2f16e74fdb46bf08130662a887aac8e7b /Lib/sysconfig.py | |
parent | 4d1246b3aa9dca4339aeaded3406bf4e34f3585d (diff) | |
download | cpython-git-171ba0504aa778d81346ea56fc9000b29d4d3e1d.tar.gz |
Merged revisions 78835-78837 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78835 | victor.stinner | 2010-03-11 13:34:39 +0100 (jeu., 11 mars 2010) | 7 lines
Issue #7774: Set sys.executable to an empty string if argv[0] has been
set to an non existent program name and Python is unable to retrieve the real
program name.
Fix also sysconfig: if sys.executable is an empty string, use the current
working directory.
........
r78836 | victor.stinner | 2010-03-11 14:27:35 +0100 (jeu., 11 mars 2010) | 4 lines
Fix test_executable introduce in previous commit (r78835): Windows is able to
retrieve the absolute Python path even if argv[0] has been set to a non
existent program name.
........
r78837 | victor.stinner | 2010-03-11 14:46:06 +0100 (jeu., 11 mars 2010) | 3 lines
Another fix to test_executable() of test_sys: set the current working to avoid
the #7774 bug.
........
Diffstat (limited to 'Lib/sysconfig.py')
-rw-r--r-- | Lib/sysconfig.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index 619e4583bd..0122f08476 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -84,7 +84,12 @@ _PREFIX = os.path.normpath(sys.prefix) _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) _CONFIG_VARS = None _USER_BASE = None -_PROJECT_BASE = os.path.dirname(realpath(sys.executable)) +if sys.executable: + _PROJECT_BASE = os.path.dirname(realpath(sys.executable)) +else: + # sys.executable can be empty if argv[0] has been changed and Python is + # unable to retrieve the real program name + _PROJECT_BASE = realpath(os.getcwd()) if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): _PROJECT_BASE = realpath(os.path.join(_PROJECT_BASE, pardir)) |