setup.py中的Python包名称与pip名称

Ken*_*ams 5 python package pypi

setup.py文件install_requires条目中列出依赖项时,如何指定要安装给定的软件包,必须将pip与软件包名称不同的名称传递给?

例如,我可以使用从PyPIpip安装,然后通过执行或类似操作在我的代码中使用。有没有办法告诉SetupTools 实体“提供” 软件包或其他东西?pyintervalfrom interval import interval, inf, imathpyintervalinterval

编辑:我找到了包装词汇表,它为我澄清了“分发包”和“导入包”之间的术语差异。就我而言,pyinterval是分发程序包,它提供了interval导入程序包。

Enr*_*aez 0

您不需要告诉 setuptools 每个依赖项提供的“命令”是什么。您只需按名称安装该软件包即可pyinterval。由您决定哪个包提供哪个“命令”,在这种情况下,包pyinterval提供的interval“命令”实际上是一个入口点(如下段落详细介绍)。

有关包注册其他包可以查询和使用的密钥的功能通常是通过入口点实现的,您可以在以下链接中阅读更多相关信息作为示例: http://the-hitchhikers-guide-to-packaging.readthedocs .io/en/latest/creation.html#entry-points

总而言之,只需告诉 setuptools 你的库需要哪些包,你可以在 GitHub 中找到很多示例:

https://github.com/search?l=Python&o=asc&p=6&q=install_requires&ref=searchresults&s=indexed&type=Code&utf8=%E2%9C%93

检查 Flask 的示例: https ://github.com/pallets/flask/blob/master/setup.py