Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建Python包中定义的控制台脚本列表_Python_Setuptools - Fatal编程技术网

创建Python包中定义的控制台脚本列表

创建Python包中定义的控制台脚本列表,python,setuptools,Python,Setuptools,我正在使用setup_tools和setup.py分发工具包。用户看到的包的正面是使用console_脚本入口点安装的命令行脚本的集合 我希望有一个附加的脚本,用户可以执行该脚本以查看包已安装的控制台脚本列表 有没有一个原则性的方法可以做到这一点?一种简单的方法是从setup.py中的“console_scripts”条目复制列表,但这很容易出错,因为修改包时必须更新列表 我当前的解决方案是实际读取setup.py脚本并解析console_脚本条目。这看起来不像蟒蛇 因此,我的问题是,是否有一个

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

我希望有一个附加的脚本,用户可以执行该脚本以查看包已安装的控制台脚本列表

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

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


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

这可以使用
setuptools
中的模块,并对您感兴趣的软件包进行筛选

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
返回的具有
setup.py
中定义的所有属性,例如
名称、模块名称、属性