>> zc.buildout+pip+setuptools can do that automatically with entry_points even 
>> when their sources end in .py.
> 
> I'm a Python newbie.  I don't understand what that last sentence means.  :)

Heh, no worries!

In a Python package's "setup.py", you can list a series of "entry points".

Entry points describe the high-level morphology of your package. Entry points 
include things like:

- Scripts that should be installed to be run from the command-line (bin)
- System-admin scripts (sbin)
- WSGI web applications
- Twisted services
- Django/Zope/Plone add-ons
- And more!

For example, suppose you had in your setup.py:

setup(
    'demo',
    ...
    entry_points={
        'console_scripts': [
            'vote = demo.cmdline.vote',
            'tally = demo.cmdline.tally',
        ],
        'z3c.autoinclude.plugin': [
            'target = plone',
        ]
    ...
)

If a user installs the package "demo", then she'll get:

- bin/vote (generated from demo/cmdline/vote.py)
- bin/tally (generated from demo/cmdline/tally.py)
- And a Zope auto-include plugin for Plone

Nice, huh?

--k

        

Reply via email to