[Python-Dev] package imports, sys.path and os.chdir()

Nick Coghlan ncoghlan at gmail.com
Sat Apr 28 10:08:08 CEST 2012


On Sat, Apr 28, 2012 at 6:00 AM, Brett Cannon <brett at python.org> wrote:
> I'm personally in favour of changing the insertion of '' to sys.path to
> inserting the cwd when the interpreter is launched.

I'm not, because it breaks importing from the interactive prompt if
you change directory after starting the session.

The existing workaround for applications is pretty trivial:

  # Somewhere in your initialisation code
  for i, entry in enumerate(sys.path):
      sys.path[i] = os.path.abspath(i)

The fix for the import system is similarly trivial: call
os.path.abspath when calculating __file__ (just as runpy now does and
the import emulation in pkgutil always has).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list