【问题标题】:Create a list of console_scripts defined in a Python package创建在 Python 包中定义的控制台脚本列表
【发布时间】:2016-02-08 17:34:03
【问题描述】:

我正在使用 setup_tools 和 setup.py 分发工具包。用户看到的包的外观是使用 console_scripts 入口点安装的命令行脚本的集合。

我想要一个额外的脚本,用户可以执行该脚本来查看软件包已安装的控制台脚本列表。

有这样做的原则方法吗?一种简单的方法是从 setup.py 中的“console_scripts”条目复制列表,但这很容易出错,因为在修改包时必须更新列表。

我当前的解决方案是实际读取 setup.py 脚本并解析 console_scripts 条目。这看起来不像 Pythonic。

因此我的问题是是否有原则性的方法来做到这一点。谢谢!

【问题讨论】:

    标签: python setuptools


    【解决方案1】:

    这可以使用来自setuptoolspkg_resources 模块并过滤您感兴趣的包。

    import pkg_resources
    def find_my_console_scripts(package_name):
        entrypoints = (ep for ep in pkg_resources.iter_entry_points('console_scripts')
                       if ep.module_name.startswith(package_name))
        return entrypoints
    

    返回的EntryPoints 具有setup.py 中定义的所有内容的属性,例如name, module_name,attrs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多