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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…