从终端运行Python包

3 投票
1 回答
4413 浏览
提问于 2025-04-18 02:52

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

撰写回答