从终端运行Python包
我有一个这样的Python包:
package/
setup.py
deb/
build/
sound/
__init__.py
run.py
config.py
readaudio.py
在run.py文件里面:
#! /usr/bin/env python
start():
...do something
resume():
....do something
if __name__=="__main__":
start()
我已经构建并安装了这个包,现在我想从命令行运行这个已安装的包。比如说:
$ ./sound.run
或者
$ python sound.run.resume
我希望能在整个系统中(或者在一个虚拟环境里)做到这一点,因为这就是安装它的目的。我知道上面的命令是行不通的,但我希望能传达我的想法。我想调用的是程序,而不是Python环境中的函数。
但是我不确定如何从命令行运行它,而不使用像这样的命令:
$ python -c " from sound import run; run.start();"
有什么建议吗,这可能吗?
1 个回答
4
你可以使用 setuptools
的入口点功能为你的项目创建一个控制台脚本。
setup(name=project_name,
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
include_package_data=True,
zip_safe=False,
entry_points="""
[console_scripts]
sound-run = sound.run:start
sound-resume = sound.run:resume
"""
# Other setuptools stuff
)