override them in #lines or py command lines as needed howeverthe setting used for directive-less filespy_pythonseems fairly crucial most programmers who have used python on windows in the past will probably expect to be the default after installing especially given that the launcher is installed by in the first place-- seeming paradoxwhich leads us to the next section pitfalls of the new windows launcher though the new windows launcher in is nice additionlike much in it may have been nicer had it appeared years ago unfortunatelyit comes with some backward incompatibilitieswhich may be an inevitable byproduct of today' multiversion python worldbut which may also break some existing programs this includes examples in books 've writtenand probably many others while porting code to 've come across three launcher issues worth notingunrecognized unix !lines now make scripts fail on windows the launcher defaults to using unless told otherwise the new path extension is off by default and seems contradictory the rest of this section gives rundown of each of these three issues in turn in the followingi use the programs in my book programming python th editionas an example to illustrate the impacts of launcher incompatibilitiesbecause porting these examples to was my first exposure to the new launcher in my specific caseinstalling broke numerous book examples that worked formerly under and the causes for these failures outlined here may break your code too pitfall unrecognized unix !lines fail the new windows launcher recognizes unix #lines that begin with #!/usr/bin/env python but not the other common unix form #!/bin/env python (which is actually mandated on some unixesscripts that use the latter of theseincluding some of my book examplesworked on windows in the past because their #lines coded for unix compatibility have been ignored as comments by all windows pythons to date these scripts now fail to run in because the new launcher doesn' recognize their directive' format and posts an error message more generallyscripts with any #unix line not recognized will now fail to run on windows this includes scripts having any first line that begins with #that is not followed by one of the four recognized patterns described earlier/usr/bin/env python*/usr/bin/python*/usr/local/bin/python*or pythonanything else won' workand requires code changes for instancea somewhat common #!/bin/python line also causes script to now fail on windowsunless version number is given in command-line switches pitfalls of the new windows launcher