我的理念是
install_requires表明您所需要的最少。如果您 知道
某些版本将不起作用,则可能包含版本要求。但是不确定的地方应该没有版本要求(例如,您不确定将来的依赖版本是否会破坏您的库)。
要求在另一方面文件应说明你知道什么 做
的工作,并可能包括可选的依赖,你建议。例如,您可能使用SQLAlchemy但建议使用MySQL,因此将MySQLdb放入需求文件中。
因此,总而言之:
install_requires是让人们远离您不知道的事情,而需求文件则将人们引向您知道的有用的事情。原因之一是
install_requires必须
始终 检查需求,并且在不实际更改程序包元数据的情况下不能禁用需求。因此,您不能轻易尝试新的组合。需求文件仅在安装时检查。



