PythonRequirements.txt:它是什么以及如何使用它?

各位读者大家好!在本文中,我们将深入探讨requirements.txt这个主题,该文件在确保代码项目顺利运行方面发挥着至关重要的作用。如果您是编码新手或有处理编码项目的经验,您可能遇到过运行代码并发现由于缺少依赖项/包而无法正常工作的问题。这可能是一个令人沮丧且耗时的过程,尤其是在具有大量依赖项的项目中。

什么是依赖关系?

对于那些不熟悉的人来说,依赖项是指代码项目正确运行所依赖的库或包。必须先安装这些依赖项,代码才能正常运行,如果缺少这些依赖项,代码将无法按预期运行。查找和安装丢失的包的过程可能很麻烦,特别是对于具有大量依赖项的项目。

让我们举一个非常简单的例子

1
2
3
4
5
6
from numpy import linalg
 
vector = [-8, 6, 0, -15]
#calculate l1 norm
l2 = linalg.norm(vector)
print("L2 norm =",l2)

上面的代码使用了Python中的库,特别是导入了打印向量(数组)范数的numpy函数。linalg.normnumpy库在这里是一个依赖项,因为没有它,就不可能计算给定向量的范数。

什么是requirements.txt?

requirements.txt 文件列出了项目所需的所有依赖项,以及每个依赖项的特定版本。该文件直接位于项目文件夹内,使其他开发人员可以轻松访问和安装必要的依赖项。

通过创建requirements.txt文件,开发人员可以节省时间并确保代码正确运行而不会出现任何问题。该文件看起来类似于下面的文件

需求示例.txt

在上面的文件中,每一行代表项目运行所需的依赖项。该行以包的名称开头,后跟“==”,用作分隔符,表明该行的后半部分将包含项目所需的精确版本号。

图中显示了这种格式的示例,其中该项目需要两个特定的 Python 模块:tinyhtml 模块,所需版本为 1.2.0,以及 numpy 模块,所需版本为 1.21.6。

自动为项目生成requirements.txt

要自动生成requirements.txt,请首先通过pip安装pipreqs包。

pip install pipreqs

检查软件包版本以查看 pipreqs 是否已正确安装。

pipreqs --version

现在复制requirements.txt中要生成依赖的项目的文件夹路径,并在终端中写入以下命令

pipreqs path\to\project

这将在您的项目文件夹中创建一个requirements.txt 文件并打印一条成功消息。例如:

Windows 终端示例

如果您的系统中尚未安装 pip,请访问:pip 安装

使用requirements.txt安装包

要安装列出的软件包,您可以按照以下步骤操作

  • 启动终端或命令提示符。
  • 如果您使用的是虚拟环境,请激活它,然后执行以下说明以在虚拟环境中安装软件包。
  • 导航到requirements.txt文件所在的目录。
  • 运行以下命令
pip install -r requirements.txt
  • 如果您不在requirements.txt所在的目录中,您只需运行
pip install -r path/to/requirements.txt
  • 安装完成后,执行以下命令查看所有软件包是否已安装:
pip freeze
  • 此命令将列出您的环境中当前安装的所有软件包和版本。

另请阅读:Pipenv:Python 的新打包工具

结论

在本文中,我们了解到,requirements.txt 文件是代码项目的一个重要方面,有助于确保正确安装依赖项以及代码正确运行。我们还讨论了如何为您自己的项目和您事先不了解的项目自动创建和运行该文件。

参考

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