如何在Python中创建requirements.txt文件
如果您是开发人员,您可能知道在任何Python项目或数据科学项目中工作时,始终在一个使您的项目可重复使用和可重复的环境中工作是至关重要的,而不会对随后接手您的项目的任何人造成问题。因此,在讨论如何在Python中创建一个要求(requirement) .txt文件之前,让我们先了解一下requirement.txt是什么以及为什么我们需要它。
Python中的requirement.txt文件是什么
在Python中,requirement.txt文件通常是一种文件类型,它通常在其中存储与开发特定项目时使用的所有库、模块和软件包有关的信息。它还存储该项目所依赖或需要的所有文件和软件包。通常,此文件”requirement.txt”存储(或驻留)在项目的根目录中。这里还有一个重要的问题,即为什么我们在项目中需要这种类型的文件。
为什么我们需要requirement.txt文件
它在许多方面都对我们有帮助,即使在将来重新访问我们的项目时,它也可以解决几乎所有的兼容性问题。如果您曾经在任何Python项目上工作或开发过任何项目,您肯定会知道我们通常需要许多软件包。然而,在开发项目时,我们通常使用特定版本的软件包。后来,包管理器或维护者可能会进行一些更改,这些修改可能会轻松破坏您的整个应用程序。因此,跟踪软件包中的每个修改是一项繁重的工作。特别是在项目非常庞大的情况下,为了避免意外的惊喜,必须跟踪我们使用的每个软件包。
解决这类问题的一种常见方法是使用虚拟环境。原因是Python库通常存储在两种主要类型的软件包和位置中,而在处理特定项目时通常不需要所有这些类型的软件包;因此,了解每个项目所需的软件包是必需的,以便更容易实现可重现性。
它通常涉及以下文件:
- 系统包,它是标准Python库的一部分
- 站点软件包(第三方软件包),您使用pip进行安装。
什么是虚拟环境
虚拟环境是一种类型的隔离或人工工作空间,它使用户的软件包与本地(主)系统安装分开。它允许我们为每个Python项目创建一个“虚拟”的独立环境。这使得每个项目都可以独立于其他项目,特别是它们共享相同的依赖关系。有各种可用的软件包可以用于创建虚拟环境。以下是一些基本的软件包:
- virtualenv
- pipenv
因此,一旦为我们的项目创建了虚拟环境,让我们看一下如何安装软件包和库。通过虚拟环境获取我们在项目中需要使用的所有所需软件包非常容易。我们首先来看一下如何使用”virtualenv”。
A. virtualenv
它是一种库,允许我们创建虚拟环境并使用它。要安装virtualenv,可以按照下面给出的说明进行操作:
1. 打开Cmd,输入以下命令,然后按下回车键,如下图所示:
指令
pip install virtualenv
输出
2. 为项目创建新的工作目录
现在,在该项目目录下创建一个新的虚拟环境,以避免不必要的问题。
命令
Python3 -m venv name_of_env
输出
3. 现在,要使用这个新创建的虚拟环境,我们只需要激活它。要激活这个隔离环境,请按照下面所示的命令输入并按回车键:
命令
name_of_envirnment\Scripts\activate
输出
要验证我们创建的新虚拟环境是否成功,您可以在提示符中看到前缀已更改为您的新虚拟环境的名称,就像我们的情况一样,我们将我们的虚拟环境命名为“name_of_envirnmnet”。您还可以通过打开项目目录或指定名称的文件夹来验证它,新目录将在其中创建。
4. 现在让我们看看如何创建requirement.txt文件
为了创建requirement.txt文件,最好知道它包含什么。
requirement.txt文件包括该特定项目中使用的所有类型的标准软件包和库。因此,这个requirement.txt文件在开发任何小型或大型项目时起着重要作用。它还帮助我们使项目更具可移植性。
通过“requirement.txt”文件的帮助,可以轻松避免几个重要问题。为了更详细地理解,您可以考虑以下示例:
示例:
假设您创建了一个新项目,例如与特定版本的库和软件包兼容的应用程序。因此出于某种原因,您将此应用程序发送给您的朋友。
由于您没有使用requirement.txt文件,您的应用程序可能无法正确运行,甚至在您朋友的系统上无法启动。其主要原因是所有用户都不使用相同版本的库和软件包。但是,如果您使用了requirement.txt文件,任何人都可以运行和使用您的项目或应用程序,因为所有所需或使用的软件包和库也以文件(requirement.txt)的形式与您的项目一起指定。
在这个requirement.txt文件中,用户可以根据自己的需求轻松选择、存储和维护所需的文件。
如何获取requirements.txt文件: 使用Virtualenv
在这里,我们将介绍如何获取requirements.txt文件。要创建requirements.txt文件,我们可以使用以下命令:
命令
pip3 freeze > requirements.txt
输出
如何获取requirements.txt文件:使用Pipenv
Pipenv也是一个功能强大的虚拟环境创建库工具,具有一些很酷的功能。您可以使用以下给出的说明来获取requirement.txt文件。
1. 输入以下命令安装pipenv
命令
pip install pipenv
输出
2.现在输入以下命令并按回车键。
命令
pipenv install mypackage
上述命令用于安装项目所需的包。
输出
- 安装项目所需的软件包后,我们需要激活虚拟环境。激活虚拟环境,请使用以下命令:
命令
pipenv shell
或者
pipenv run
这些命令可用于激活新创建的虚拟环境,如下所示:
输出
现在在虚拟环境中输入以下命令来运行脚本。
命令
pipenv run Python myscript.py
解释
此命令用于在虚拟环境中运行指定的脚本,如下所示:
输出
由于它更简单,而且还会自动跟踪项目中使用的所有库,在pipfile和pipfile.lock文件中保存这些文件起到跟requirement.txt文件相同的作用,并且还存储了一些requirement.txt中不包含的其他信息。
因此,您可以使用此pipfile作为requirements.txt文件的替代。但是,如果您仍然希望使用requirements.txt文件,可以使用以下命令:
pipenv -r lock >> requirements.txt
输出
如何获取requirements.txt文件:使用Pipreqs无需虚拟环境
Pipreqs是 最高效和简单易用的工具之一,不需要您创建任何虚拟环境。因此,如果用户只需要应用程序或项目中使用的包和库,它非常有用。
其中最重要的是,它会自动扫描脚本或Python文件中导入的库,并生成requirements.txt。
让我们看看它是如何工作的:
1.首先,您需要安装”pipreqs”,所以在cmd中输入以下命令并按回车键下载:
命令
pip install pipreqs
输出
2. 一旦安装完成,您可以在开始”pipreqs”时指向您的项目文件夹所在的位置以获取 requirement.txt 文件。
命令
pipreqs /path/to/project
输出
要验证是否成功创建了requirement.txt文件,您可以在项目文件夹中看到一个新文件”requirement.txt”,如下所示: