[Python-ideas] [Python-Dev] If you shadow a module in the standard library that IDLE depends on, bad things happen

Serhiy Storchaka storchaka at gmail.com
Sun Nov 1 01:41:03 EST 2015

On 01.11.15 08:06, Steven D'Aprano wrote:
> (1) Beginning with Python 3.6, the default is that the current directory
> is put at the end of sys.path rather than the beginning. Instead of:
>      >>> print(sys.path)
>      ['', '/this', '/that', '/another']
> we will have this instead:
>      >>> print(sys.path)
>      ['/this', '/that', '/another', '']
> Those who don't shadow installed packages won't notice any
> difference.
> Scripts which deliberately or unintentionally shadow installed packages
> will break from this change. I don't have a problem with this. You can't
> fix harmful behaviour without breaking code that depends on that harmful
> behaviour. Additionally, I expect that those who rely on the current
> behaviour will be in a small minority, much fewer than those who will be
> bitten by accidental shadowing into the indefinite future.

Unfortunately this is not such small minority


But we can workaround this problem by adding harmless path at the strt 
of sys.path.

     sys.path.insert(0, '/non-existing-stub-path')


     sys.path.insert(0, sys.path[0])

More information about the Python-ideas mailing list