This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

作者 vstinner
收信人 ezio.melotti, flox, jnoller, pitrou, ronaldoussoren, schmir, tarek, vstinner
日期 2010-03-11.12:56:43
SpamBayes Score 1.0312862e-12
Marked as misclassified
Message-id <1268312205.94.0.103673536083.issue7774@psf.upfronthosting.co.za>
In-reply-to
内容
r78835 (trunk) fixes getpath and includes also a fix for sysconfig which should fix test_executable_with_cwd() of test_subprocess.

My fix on sysconfig is different than flox's patch: since I fixed getpath, sys.executable cannot be a directory name. At revision r78835, sys.executable can have 3 values:
 (a) absolute path to Python executable name (most common case)
 (b) empty string if argv[0] has been set to a non existent program name
 (c) absolute path to a different program if argv[0] has been set to a different program, with or without path (eg. "true" and "/bin/path")

(c) is the worst case: Python refuses to start. r78835 fixes the site module error for case (b).

There are different methods to get the real program name, but no one is portable. As flox wrote, we can "do a best effort to provide a valid sys.executable". Extract of stackoverflow link:

 * Mac OS X: _NSGetExecutablePath() (man 3 dyld)
 * Linux: readlink /proc/self/exe
 * Solaris: getexecname()
 * FreeBSD: sysctl CTL_KERN KERN_PROC KERN_PROC_PATHNAME -1
 * BSD with procfs: readlink /proc/curproc/file
 * Windows: GetModuleFileName() with hModule = NULL
历史
日期 用户 动作 参数
2010-03-11 12:56:46vstinner修改recipients: + vstinner, ronaldoussoren, pitrou, schmir, tarek, jnoller, ezio.melotti, flox
2010-03-11 12:56:45vstinner修改messageid: <1268312205.94.0.103673536083.issue7774@psf.upfronthosting.co.za>
2010-03-11 12:56:44vstinner链接issue7774 messages
2010-03-11 12:56:43vstinner创建