Sys.path[0] (and os.getcwd()) for various startup conditions. (What gets prepended before .../pythonxy.zip, which is the first file always present on sys.path, at least on Windows) Possibilities are '' (=cwd), some user dir, and .../idlelib. Even with 'idlelib', proper startup can fail because PyShell line 1525 adds the current working directory anyway. CONSOLE: by default, cwd (current working directory, os.getcwd()) is printed before the '>' prompt and is not changed by commands. > python: ''. This is not changed by 'import idlelib.idle'. > python -c "import idlelib.idle": ''. > python -m idlelib: ''. > python ...idlelib: ...idlelib, I presume. Runs idlelib.__main__. > python ...idlelib/idle.py: ...idlelib. > python -m idlelib userpath/x.py: userpath, cwd?. > python ...idlelib userpath/x.py: ???. IDLE starts, run may fail. Summary: Any method of starting IDLE with python from the console can fail if cwd contains conflicting .py files. ICONS on Windows: python: '', where cwd is pythondir. Idlelib import can fail. 3.5.0 changed cwd as C:\windows\system32, but this was changed back in 3.5.1. idle: 2,7 uses pythonw -m idlelib.idle. 3.5 uses pythonw .../idlelib. files: right click, edit with idle. Similar to editing from console. TODO: I have not yet investigated any differences from using pythonw.exe or idlew.exe or idle.bat, but I expect the results to be about the same. I have also not looked at repository builds. TOOLS: "import sys; print(sys.path)", "import os; print(os.getcwd())", and test_path.py: import sys for dir in sys.path: print(dir) import os print('\ncwd', os.getcwd()) Also need to print from within idle.py or PyShell.py. This is harder when there is no console.