我使用setup_tools和setup.py来分发一系列工具。用户看到的包的表面是使用console_scripts入口点安装的命令行脚本的集合。
我希望有一个额外的脚本,用户可以执行该脚本以查看该软件包已安装的console_scripts列表。
这样做有原则吗?一种简单的方法是从' console_scripts'中复制列表。在setup.py中输入,但这很容易出错,因为在修改包时必须更新列表。
我目前的解决方案是实际读取setup.py脚本并解析console_scripts条目。这看起来不像Pythonic。
因此我的问题是否有原则性的方法来做到这一点。谢谢!
答案 0 :(得分:0)
可以使用setuptools
中的pkg_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
返回的EntryPoint具有setup.py
中定义的所有内容的属性,例如name, module_name,attrs
。