【发布时间】:2014-03-19 09:18:00
【问题描述】:
如果我输入pip freeze > requirements.txt,生成的文件类似于:
argparse==1.2.1
h5py==2.2.0
wsgiref==0.1.2
一些库正在开发中。这发生在我身上,关于 h5py,它现在(在撰写本文时)在版本 2.2.1 中可用。因此,使用pip install -r requirements.txt 会引发错误,说没有找到h5py 的2.2.0 版本:
No distributions matching the version for h5py==2.2.0 (from -r requirements.txt (line 2))
通过pip freeze 维护需求是否被认为是一种好的做法?显然,我不能依赖将来仍然可用的特定版本号。我想在未来部署我的应用程序,即使它们已有几年的历史,也不会出现关于版本号的兼容性问题。有没有办法让pip freeze 的输出未来安全?
我考虑过使用大于符号>=而不是等于符号==来操作pip freeze的输出文件,所以输出将如下所示:
argparse>=1.2.1
h5py>=2.2.0
wsgiref>=0.1.2
但我可以想象,如果任何库在未来版本中破坏了向后兼容性,这将破坏我的应用程序。
【问题讨论】:
标签: python deployment pip