At 11:19 AM 9/15/2005 -0400, Phillip J. Eby wrote: >Every so often, there's a perennial debate on the distutils-sig about >script filenames. Should they have .py extensions or not? What about .pyw >apps on Windows? What about Mac OS? and so on. > >... > >So, if these "main" functions were simply declared as entry points in the >project's setup script, then EasyInstall could automatically generate stub >scripts for them, in a platform-appropriate fashion, with no need for '-m', >"__name__=='__main__'", or fiddling with file extensions. For example, >if PyUnit were distributed as an egg, with the following entry points: > > [distutils.console_apps] > unittest = unittest:main > >Then EasyInstall could create a 'unittest' script with a #! line on >Unix-like OSes, and a 'unittest.py', 'unittest.bat', or 'unittest.exe' on >Windows. In each case, the generated program would simply load and run the >entry point with no arguments.
FYI, I've now implemented console script generation in the CVS version of setuptools, except that I decided to call the entry point group "console_scripts". There is a custom .exe launcher for Windows, too. The whole thing was surprisingly easy to implement, and the docs are updated in CVS as well. I'll probably implement the find_package_data() thing this weekend as well, and put it out as an 0.6a2 release. Note that generated scripts can't be run with -m, but then again neither can a lot of things. ;) Using -m scripts means your eggs can't be installed compressed anyway, so these "new-style" scripts are superior in almost every way. You don't need an if __name__=='__main__', you don't need separate scripts, just write your "main" function in a module somewhere and list the entry point in your setup(). Anyway, for backward-compatibility I'm still allowing "python -m easy_install" in the next release or two, but a warning is printed to the console. Later, this feature will be removed so that it's possible to install setuptools in compressed form. _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
