Python 是否允许在requirements.txt中使用不同的版本?

Python 是否允许在requirements.txt中使用不同的版本?,python,python-3.x,pip,pypi,requirements.txt,Python,Python 3.x,Pip,Pypi,Requirements.txt,我正在从事一个Python项目,其中有一个requirements.txt文件,其中指定了包的确切版本 我们正在考虑是否使用以允许安装不同的版本。这是推荐的吗?还是继续使用每个包的特定版本更安全?当在次要版本或补丁版本之间切换时,我们能相信PyPI包的API保持不变吗 设置: Python 3.5 我们使用PyInstaller来构建包 远程使用Travis CI 如果您的依赖项包足够成熟,可以进行严格的版本控制,那么它们可能会采用一种方法 使用这种方法并引用上面的链接,有3个版本号 因此,在

我正在从事一个Python项目,其中有一个
requirements.txt
文件,其中指定了包的确切版本

我们正在考虑是否使用以允许安装不同的版本。这是推荐的吗?还是继续使用每个包的特定版本更安全?当在次要版本或补丁版本之间切换时,我们能相信PyPI包的API保持不变吗

设置:

  • Python 3.5
  • 我们使用PyInstaller来构建包
  • 远程使用Travis CI

如果您的依赖项包足够成熟,可以进行严格的版本控制,那么它们可能会采用一种方法

使用这种方法并引用上面的链接,有3个版本号

因此,在本例中,您可以使用上面提到的语法锁定您的包,以使用包的最后一个不可破坏的api版本,即:

foo>5, <5.7

foo>5,恐怕这完全取决于那些软件包。Python的科学堆栈(numpy、scipy、pandas、matplotlib、sklearn)在这方面已经相当成熟(弃用警告;然后很晚才删除/更改),但其他堆栈可能会有所不同。
foo>5, <5.7