Python's setuptool has two ways of adding command line scripts to a Python package: script
and entry_point
.
This tutorial outlines these ways:
scripts
Add a Python script (funniest-joke
) to the package tree, and add its path to setup.py
:
setup(
...
scripts=['bin/funniest-joke'],
...
)
Entry point:
Add a Python script (funniest-joke
) to the package tree. Add a main()
function to it, and add command_line.py
submodule which runs funniest's main()
:
command_line.py
:
import funniest
def main():
print funniest.joke()
setup.py
setup(
...
entry_points = {
'console_scripts': ['funniest-joke=funniest.command_line:main'],
}
...
)
What are the advantages and disadvantages of each method?