原文: Python Requirements.txt – How to Create and Pip Install Requirements.txt in Python

我们每天都要使用许多 Python 软件包来解决编码问题。以库 Beautiful Soup 为例,它并不是 Python 的默认库,需要单独安装。

许多项目都依赖于库和其他依赖项,而安装每一个库都很繁琐、耗时。

requirements.txt 是一个包含项目所需的软件包或库列表的文件,这些软件包或库都可以通过该文件安装。它提供了一个一致的环境,使协作变得更容易。

requirements.txt 文件格式

image-219
图中显示了一个包含 requirements.txt 的方框,下方是另一个包含文本 "package_name == version" 的方框

上图显示了创建的 requirements.txt 文件示例,其中包含安装包和版本的列表。

关键术语

到目前为止,我已经提到了一些你可能不知道的术语。以下是它们的含义,以及你在使用 requirements.txt 时会遇到的其他一些重要术语:

  • 依赖项是程序正常运行所需的软件组件。它们可以是库、框架或其他程序。
  • 软件包是一种将相关依赖项组合在一起的方法。它们使安装和管理依赖项变得更容易。
  • 虚拟环境是一个包含 Python 解释器副本和特定项目所需的所有软件包的目录。
  • Pip:这是 Python 的软件包管理器。你可以使用 Pip 安装、卸载和管理 Python 软件包。

如何创建 requirements.txt 文件

要创建 requirements 文件,必须先设置虚拟环境。如果你使用 Pycharm,虚拟环境(.venv)已经设置好了。但使用 Visual Studio Code,你必须自己创建虚拟环境

你可以使用终端或命令提示符来创建 requirements 文件。以下是创建文件时需要遵循的步骤:

首先,打开终端或命令提示符。然后检查显示的文件路径是否是你的工作目录。请使用以下命令:

$ cd folder-name #cd - change directory

在上述命令中,将 folder-name 替换为要访问的目录名。

vgAz2y8K2iS5wT805qSCN4GhJSv4CDu_eY1_lD_xjetaHhqkNIIvZfCmlVBmBfYYw3PrEYlkq2lasDFsc3YhMtqxZwP4AVn3P70820VeUPdVZxVXU8Cw_UNqPhKnKn3fqpy1sgC5UY4urtfqj4VlYcg
显示在命令行中设置项目目录的示意图

接着,运行这个命令:

$ pip freeze > requirements.txt

你会发现 requirement 文件被添加了。

输出如下

requirementfile
图表显示新创建的 requirements 文件

这是你新创建的 requirements.txt 文件:

1NEE23GJuy_i0qdANdi6twSQGnjfHrjVZ6LuUlENe57kqsMoUve3W0WcmxZLfY9JW04GrYZghVWFtY4_LnVU-isHVxv0ySpMCDQ5sYwhw2BhlQjCLbj2oa_v_nMIUgar2xayjkPRj6ogUARpZEYtKiA
显示 requirements 文件中软件包列表的图表

上图显示了可以使用的依赖项及其版本。

如何处理 requirements.txt 文件

现在我们有了 requirements 文件,你可以看到它由一长串不同的软件包组成。

要使用这些软件包,你必须先安装它们。你可以使用命令提示符或终端进行安装。

键入以下命令:

pip install -r requirements.txt

看起来像这样:

7FDCFqn38aY2GFcoqtrKyy4Oyu_8cAPdJkOxbUIdZTfSalvufWIrbEehT61tgJxuhqiA0nINSfkyHcbE-H-H-hc77rY1zTkMQhyRijtWBOEqcaWZL7fnyNxRDO1hmKcagc9sYI4qijgj6Ut2lVY-zto
显示安装 requirements.txt 文件中软件包的图片

现在,所有依赖项都已安装,可以使用 requirements.txt 了。

使用 requirements.txt 的示例

在本例中,我们将使用beautifulsoup4requests 这两个库来返回网站的一些信息。

M5xLixBqsvL-vtUPFwEZq7NzB-jJDSpycapgv22OxtBKRFa9ysE0kIIPSG0mjltzfknNMdtlPYC8xDWwVnNyGiURQxHFJCrMI_Axexn7dKMRfVN4qUHLt0TEojj_pbLMW-cz_9wlrVw6VOOr8MaD-uQ
在 requirements 文件中显示本例工作库的示意图

在上图中,我们可以看到 requirements.txt 文件中包含了两个库及其版本。现在我们可以使用这些库了,因为我们之前已经安装了它们。

  • 从名为 bs4(beautifulsoup4)的软件包中导入 BeautifulSoup 库,同时导入 requests 库。
from bs4 import BeautifulSoup
import requests
  • 为了从网站 URL 获取信息,我们使用.get()方法访问 requests 库。
web_data = requests.get("https://www.lithuania.travel/en/category/what-is-lithuania", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"})
  • 现在我们可以访问 URL,Beautiful Soup 库接受web_data并返回其中的所有 HTML 内容。
soup = BeautifulSoup(web_data.content, features="html.parser")
  • 我选择返回的最终结果是 <p> 标记位于第一个位置 [0] 的元素。
news_info = soup.findAll("p")[0]
print(news_info.text

将一切融合在一起:

from bs4 import BeautifulSoup
import requests
web_data = requests.get("https://www.lithuania.travel/en/category/what-is-lithuania", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"})
soup = BeautifulSoup(web_data.content, features="html.parser")
news_info = soup.findAll("p")[0]
print(news_info.text)


输出是这样的:

4H_qTUMuvWXNGMKpGrxHfVY6WaEntz51xZ936GwYWY6JRXILVPyd06spEt6emH0XKajK3Ov0qLixzgrqtEC5cIr-81UxyB61fTPPNhGcDc5eEhVoateHzmpAnvowdtbkqJgdz7IlpZ2aGtv9OWLCUCA
代码和结果示意图

使用 requirements.txt 文件的好处

  • 管理依赖关系:通过在 requirements.txt 文件中列出项目的依赖关系,你可以轻松查看需要哪些软件包以及它们需要的版本。
  • 与他人共享项目:如果与他人共享项目,可以将 requirements.txt 文件包括在内,这样他们就可以轻松安装所需的软件包,可以节省他们的时间并降低挫折感,并有助于确保每个人都使用相同版本的软件包。

总结

在本文中,我们学习了如何创建 requirements.txt 文件,并概述了使用它的好处。

你也应该尝试用它来完成一些项目。如果你有任何问题,可以在 Twitter 上联系我💙。