["python","setuptools"]
Explain Python entry points?

I've read the documentation on egg entry points in Pylons and on the Peak pages, and I still don't really understand. Could someone explain them to me?
An "entry point" is typically a function (or other callable function-like object) that a developer or user of your Python package might want to use, though a non-callable object can be supplied as an entry point as well (as correctly pointed out in the comments!). The most popular kind of entry point is the console_scripts entry point, which points to a function that you want made available as a command-line tool to whoever installs your package. This goes into your setup.py script like: entry_points={ 'console_scripts': [ 'cursive = cursive.tools.cmd:cursive_command', ], }, I have a package I've just deployed called cursive.tools, and I wanted it to make available a "cursive" command that someone could run from the command line, like: $ cursive --help usage: cursive ... The way to do this is define a function, like maybe a cursive_command function in the file cursive/tools/cmd.py that looks like: def cursive_command(): args = sys.argv[1:] if len(args) < 1: print "usage: ..." and so forth; it should assume that it's been called from the command line, parse the arguments that the user has provided, and ... well, do whatever the command is designed to do. Install the docutils package for a great example of entry-point use: it will install something like a half-dozen useful commands for converting Python documentation to other formats.