On Sun, Apr 29, 2012 at 1:41 PM, PJ Eby <p...@telecommunity.com> wrote: > That's already the case. Actually, sys.path[0] is *always* the absolute > path of the script directory -- regardless of whether you invoked the script > by a relative path or an absolute one, and regardless of whether you're > importing 'site' -- at least on Linux and Cygwin and WIndows, for all Python > versions I've used regularly, and 3.2 besides.
"-c" and "-m" also insert the empty string as sys.path[0] in order to find local files. They could just as easily insert the full cwd explicitly though, and, in fact, they arguably should. (I say arguably, because changing this *would* be a backwards incompatible change - there's no such issue with requiring __file__ to be absolute). If we fixed that, then you could only get relative filenames from the interactive prompt. There's another way we can go with this, though: something I'm working on at the moment is having usage of the frozen importlib be *temporary*, switching to the full Python source version as soon as possible (i.e. as soon as the frozen version is able to retrieve the full version from disk). There's a trick that becomes possible if we go down that path: we can have some elements of importlib._bootstrap that *don't run* during the initial bootstrapping phase. Specifically, we can have module level code that looks like this: if __name__.startswith("importlib."): # Import system has been bootstrapped with the frozen version, we now have full stdlib access # and other parts of the interpreter have also been fully initialised from os.path import abspath as _abspath _debug_msg = print else: # Running from the frozen copy, there's things we can't do yet because the interpreter is not fully configured def _abspath(entry): # During the bootstrap process, we let relative paths slide. It will only happen if someone shadows the stdlib in their # current directory. return entry def _debug_msg(*args, **kwds): # Standard streams are not initialised yet pass Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com