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'],
...
)
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?
Basically scripts is the old way which requires you to have a stand-alone, executable script file and the entry-points method lets you define which functions you want to run when a command is given. This way you can have several functions in the same file/module and then have 'entry points' which will be called when the user types in one of the console_scripts
commands.
Although setup() supports a scripts keyword for pointing to pre-made scripts to install, the recommended approach to achieve cross-platform compatibility is to use console_scripts entry points (see below).
From https://packaging.python.org/tutorials/distributing-packages/#scripts ( old source )
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.