如何指定Python包中entry_points脚本的安装位置?

2 投票
1 回答
1288 浏览
提问于 2025-04-18 05:34

我有一个Python包,里面有一个setup.py文件,内容如下:

 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
    )

我想要在把这个包安装成Debian包的时候,能把一些脚本(比如sound-run和sound-resume)放到我指定的地方。目前,当我制作Debian包时,这些脚本会被放到/usr/local/bin/目录下,但我希望它们能安装到/usr/local/myfolder/myfolder1这个目录里。

有什么建议吗?

1 个回答

0

你可以用这个命令来安装脚本:python setup.py --install-scripts destination。如果你想了解更多,可以使用--help选项,或者查看这个链接:https://docs.python.org/2.7/install/index.html#custom-installation

需要注意的是,这个功能是由distutils提供的,而setuptools是对它的扩展;我猜测通过setuptools生成的脚本也会遵循这个选项。

关于你的使用场景,Debian系统有一些特定的工具可以把东西安装到正确的位置,这样Debian的工具就能完成后续的工作。我建议你可以看看如何使用dh配合pybuild和dh_python2。

撰写回答