`=`后面的值在requurements.txt文件中指定了什么?

2024-05-23 22:30:38 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是requirements.txt文件的摘录。我理解==指定版本后的值。=后面的值指定了什么?我可以排除它吗

icu==67.1=he1b5a44_0
lz4-c==1.9.2=he6710b0_1
xz==5.2.5=h7b6447c_0
qt==4.8.7=2

Tags: 文件版本txtqtrequirementsxzlz4icu
3条回答

如果文件是通过导出conda环境创建的(在这种情况下,通常应称为类似environment.yml,即yml文件),则会发生这种情况

如果使用basic命令创建此文件

conda env export > environment.yml

它导出最严格的包定义,其中包括内部版本号(这是您在第二个=之后看到的),并且它通常是特定于操作系统的。这保证了您可以在与原始操作系统完全相同的环境下复制(但也不能在其他操作系统上工作)。这一问题也在this question中得到了反映。在绝大多数情况下,没有它您应该很好,并且您可以自由删除版本号。如果您有权访问此环境,则可以“正确”导出它,如

conda env export > environment.yml  no-build

这意味着你一开始实际上没有一个pip^{} file。这是一个conda导出,可能是用^{}创建的,不能用pip处理

=之后的值只是一个build string,您可以将其视为允许安装完全相同的构建的标识符。这里的版本号不够,因为同一版本可能有不同的版本

显示引用的xz包的h7b6447c_0构建的示例:

$ conda search xz=5.2.5  info
Loading channels: done
xz 5.2.5 h7b6447c_0
         -
file name   : xz-5.2.5-h7b6447c_0.tar.bz2
name        : xz
version     : 5.2.5
build       : h7b6447c_0
build number: 0
size        : 438 KB
license     : LGPL-2.1 and GPL-2.0
subdir      : linux-64
url         : https://repo.anaconda.com/pkgs/main/linux-64/xz-5.2.5-h7b6447c_0.tar.bz2
md5         : e17620ef8fc8654e77f53b4f2995b288
timestamp   : 2020-04-16 04:36:07 UTC
dependencies: 
  - libgcc-ng >=7.3.0

由于requirements.txt doc中没有关于它们的任何内容,因此它们对于pip来说似乎毫无意义

https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format

相关问题 更多 >