当我在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;
导入包。
答案 0 :(得分:0)
您不需要告诉setuptools每个依赖项提供的'命令'是什么。您只需要按名称pyinterval
安装软件包即可。由你来知道哪个包提供了哪个'命令',在这种情况下pyinterval
包提供了interval
'命令',它实际上是一个入口点(详见下一段)。
关于注册其他包可以查询和使用的密钥的软件包的这个功能通常是通过入口点实现的,您可以在以下链接中阅读更多相关内容作为示例: http://the-hitchhikers-guide-to-packaging.readthedocs.io/en/latest/creation.html#entry-points
总结一下,告诉setuptools你的库需要哪些软件包,你可以在GitHub中找到很多例子:
检查例如Flask: https://github.com/pallets/flask/blob/master/setup.py