在requrements.txt文件中,“ =”后的值指定什么?

问题描述

以下内容摘自?- arithmetic_expression(..[+,5,7]). ERROR: Syntax error: Operator expected ERROR: arithmetic_expression(. ERROR: ** here ** ERROR: .[+,7]) . 文件。我了解requirements.txt指定版本后的值。 ==之后的值指定什么?我可以排除它吗?

=

解决方法

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

如果使用基本命令创建了此文件

conda env export > environment.yml

它导出最严格的软件包定义,其中包括内部版本号(这是在第二个=之后看到的内容),并且通常是特定于操作系统的。这样可以保证您可以精确地复制与原始环境相同的环境(但在其他操作系统上也无法使用)。 this question中也记录了该问题。在大多数情况下,没有它应该没问题,您可以自由删除内部版本号。如果可以访问此环境,则可以“正确”导出它,例如

conda env export > environment.yml --no-build
,

这表示您实际上并没有第requirements.txt file个点。这是一个conda导出文件,可能是用conda list --export创建的,不能用pip处理。

=之后的值只是一个build string,您可能会认为它是一个标识符,可以安装此完全相同的内部版本。这里的版本号是不够的,因为您可能具有相同版本的不同版本。

示例显示了您引用的h7b6447c_0软件包的xz构建:

$ 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文档的原因,与它们无关,对于 pip 来说,它们似乎毫无意义。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...