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

时间:2017-03-09 20:57:48

标签: python package pypi

当我在setup.py文件的install_requires条目中列出依赖关系时,如何指定为了安装给定的包,必须传递一个不同的名称pip而不是包名?

例如,我可以使用pip来安装pyinterval from PyPI,我可以通过from interval import interval, inf, imath或类似方式在我的代码中使用pyinterval。有没有办法告诉SetupTools interval实体"提供" pyinterval包还是什么?

编辑:我找到了packaging glossary,它为我澄清了"发行包"之间的术语差异。和#34;导入包"。就我而言,interval是分发包,它提供im=imread('gxGkH.jpg'); figure,imagesc(im);axis image; 导入包。

1 个答案:

答案 0 :(得分: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