[Python-Dev] package imports, sys.path and os.chdir()
Christian Tismer
tismer at stackless.com
Fri Apr 27 23:21:25 CEST 2012
On 27.04.12 22:00, Brett Cannon wrote:
>
>
> On Fri, Apr 27, 2012 at 10:39, Christian Tismer <tismer at stackless.com
> <mailto:tismer at stackless.com>> wrote:
>
> On 27.04.12 02:39, Nick Coghlan wrote:
>
> On Fri, Apr 27, 2012 at 7:30 AM, Christian
> Tismer<tismer at stackless.com <mailto:tismer at stackless.com>> wrote:
>
> No big deal and easy to work around, I just would like to
> understand why.
>
> I don't like it either and want to change it, but I'm also not
> going
> to mess with it until the importlib bootstrapping is fully
> integrated
> and stable.
>
> For the moment, there's a workaround in runpy to ensure at least
> __main__.__file__ is always absolute (even when using the -m
> switch).
> Longer term, I'd like to see __file__ and __path__ entries to be
> guaranteed to be *always* absolutely, even when they're imported
> relative to the current working directory.
>
>
> Is there a recommendable way to fix this? I would like to tell people
> what to do to make imports reliable. Either I put something into
> the toplevel __init__ code, or I hack something into .pth or
> sitecustomize,
> and then forget about this.
>
>
> No, there isn't.
>
> But I fear hacking __init__ is the only safe way that works without
> a special python setup, which makes the whole reasoning rather
> useless, because I can _not_ forget about this.... waah ;-)
>
>
> Yeah, to guarantee the semantics you are after you have to grab that
> '' entry in sys.path as early as possible and substitute it with the
> cwd so that its initial value propagates through the interpreter.
> Importlib is already having to jump through some hoops to treat it as
> '.' and even that doesn't get you what you want since that will change
> when the cwd is moved.
>
> I'm personally in favour of changing the insertion of '' to sys.path
> to inserting the cwd when the interpreter is launched.
Thanks Brett, that sounds pretty reasonable. '' always was too implicit
for me.
cheers - chris
--
Christian Tismer :^)<mailto:tismer at stackless.com>
tismerysoft GmbH : Have a break! Take a ride on Python's
Karl-Liebknecht-Str. 121 : *Starship* http://starship.python.net/
14482 Potsdam : PGP key -> http://pgp.uni-mainz.de
work +49 173 24 18 776 mobile +49 173 24 18 776 fax n.a.
PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04
whom do you want to sponsor today? http://www.stackless.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120427/65c99456/attachment.html>
More information about the Python-Dev
mailing list