我有一个像这样的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
我希望能够在系统范围内(或在virtualenv中)执行此操作,因为这是安装它的重点。我知道上面的命令不起作用,但我希望这能传达出这个想法。我想调用程序而不是python环境中的函数。
但是我不知道如何从命令行运行它而没有使用这样的东西:
$ python -c " from sound import run; run.start();"
任何建议都是可能的吗?
答案 0 :(得分:3)
您可以使用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
)