如果我输入
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
会出现错误,说找不到2.2.0
版本的 h5py:
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
但我可以想象,如果任何库在未来版本中破坏了向后兼容性,这将会破坏我的应用程序。