On Sat, Nov 14, 2015 at 8:26 PM, Zachary Ware <zachary.ware+pyl...@gmail.com> wrote: > > "#!python" is a valid shebang for the Python Launcher for Windows. > It's also a not-too-terrible placeholder for a Unix shebang meaning > "whichever Python you want it to be". The better choice for use with > both platforms would be "#!/usr/bin/env python", though.
The "/usr/bin/env python" virtual command searches the directories in PATH, trying each file extension from PATHEXT such as "python.COM", "python.EXE", and so on. You can also search for other programs such as "pypy". Note that qualifying "python" (but not other names) as "python2" or "python3.5" makes the launcher use the registry instead of searching PATH. "#!/usr/bin/python" may be better in some cases. This defaults to the latest installed version of 2.x (or 3.x if no 2.x is installed) that's configured in the Windows registry. Or specify "python2" or "python3" to use the latest 2.x or 3.x. These commands can be configured to use a particular major[.minor[-32]] version via the environment variables PY_PYTHON, PY_PYTHON2, and PY_PYTHON3. Or you can configure them instead by setting the "python", "python2" and "python3" keys in the [defaults] section of the configuration file "%LOCALAPPDATA%\py.ini". Note that the environment variable overrides the corresponding py.ini key. When portability isn't a concern you can use a Windows path in the shebang such as "#!C:\pypy40\pypy.exe". https://docs.python.org/3/using/windows.html#shebang-lines -- https://mail.python.org/mailman/listinfo/python-list