从终端运行python包

时间:2014-04-15 20:34:12

标签: python command-line package

我有一个像这样的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();"

任何建议都是可能的吗?

1 个答案:

答案 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
    )