Tor*_*kel 5 python setuptools entry-point
是否可以在 setup.py 中定义条件入口点?我注意到可以使用 来标记入口点extras,但即使安装的包没有该额外功能,该入口点也将可用。
setup(name='my.package',
...
extras_require={
'special': [
'dependency1',
'dependency2',
],
},
...
entry_points="""
[custom_entrypoint]
handlername = my.package.special:feature [special]
""",
)
Run Code Online (Sandbox Code Playgroud)
custom_entrypoint即使安装的软件包没有该功能,该功能也可用( special) pip install my.package[special]。有没有一种简单的方法可以让这样的事情发挥作用?
入口点被写入package.dist-info/entry_points.txt。我建议查看系统上安装了哪些软件包setup.py,但这可能没有帮助,因为dist-info可能会在安装其他软件包之前处理这些软件包pip;后来,即使您安装了其他软件包,这些入口点也不会神奇地出现,除非您setup.py使用my.package正确的参数运行。
我建议您重构,以便有一个名为 的包和另一个名为;my.package的可安装包。my.package.special后者将具有my.package、dependency1和dependency2作为依赖项以及入口点。现在,如果您想安装my.package它,无需特价即可安装;pip install my.package.special以获得最重要的特殊功能。