面向数据科学家的使用 Conda 的 Python 虚拟环境综合指南
通过终端使用 Conda 的虚拟环境指南
本文将是数据科学家使用 Conda 为您的项目创建、导出和使用虚拟环境的综合指南。本教程将专门针对 Python 虚拟环境。以下概述了文章的结构。
Table of Contents
- 什么是 Conda 虚拟环境?
- 为什么要使用虚拟环境?
- Conda Installation
- 创建虚拟环境
– Through Command Line
– Through Environment File
– Active Environment
– Deactivate Environment - Environment List
– 环境中已安装包的列表 - Export Virtual Environment
- 克隆虚拟环境
- 删除虚拟环境
- Concluding Remarks
- Resources
什么是 Conda 虚拟环境?
简而言之,虚拟环境只是位于计算机上的一个目录,用于在隔离位置运行脚本。您有能力创建许多不同的虚拟环境,每个环境将相互隔离。这允许您使用不同版本的各种包运行您的项目和代码。
有各种服务可以让您创建虚拟环境,这些服务因编码语言而异。特别是对于 Python,创建和使用虚拟环境的两种最常见的方法是通过包管理器 pip 和 conda 。尽管它们的功能可能重叠,但每个管理器的整体设计是不同的。我使用 conda 来管理我的虚拟环境的主要原因是因为它很健壮并且可以通过 conda 和 pip 打包安装,它允许安装不同版本的 Python 和其他编程语言,并且该软件是为数据科学家设计的。
为什么要使用虚拟环境?
虚拟环境的使用在数据科学中至关重要,尤其是在项目协作、交付项目以进行生产化、管理包依赖冲突以及更容易重现结果时。 Python 不是管理包的最佳工具,您在计算机上安装的每个包都附带了当前包所依赖的其他几个包。然后以各种版本安装所有这些软件包,以确保最新安装的软件包正常运行。如果不指定检查与您正在安装的包关联的版本,这将成为问题。
假设您在项目 Y 上工作,并且使用的是 pandas 的 2.0.1 版,但是在项目 X 上工作时,您使用的是 pandas 的 2.0.0 版。想象一下,这些版本之间的差异来自于项目 X 正在使用的 pandas 上各种功能的弃用。这实质上意味着您为项目 X 编写的调用已弃用函数的脚本将不再工作,因为您的库版本已更新。当你刚刚开始数据科学之旅并且没有很多项目时,这个问题可能不会出现,但在某些时候你会遇到这个或非常类似的问题。
最好的做法是为您正在处理的每个项目拥有一个独立的虚拟环境。这是由于两个主要原因;首先,项目的依赖项和版本可能会有所不同,您将继续从事越来越多的项目。其次,生产环境将需要这些依赖项及其相关版本。旧/新版本可能已弃用或添加到库中的新功能。当您将模型交给数据/机器学习工程师投入生产时,您将向他们提供模型、与使用模型生成预测相关联的脚本以及包含所需包和这些包的版本的需求/环境文件加载和运行模型。
Conda Installation
Conda 有大量关于其安装的文档。遵循以下指南将指示与在 Windows / Mac / Linux 操作系统中安装 anaconda / miniconda 相关的必要步骤和说明。
创建虚拟环境
Through Command Line
安装 conda 后,在终端/命令行中的任何路径,都可以运行以下命令:
conda create -n <env_name>
-n 代表名称,您将
conda create -n conda_tutorial
您还可以通过以下命令指定要使用环境创建的 Python 版本:
conda create -n conda_tutorial python=3.9
根据 Conda 文档,如果在创建环境时没有指定 Python 版本,则默认使用 Python 3.9 [3]。
Through Yaml File
以下是与 conda 环境文件关联的结构,通常命名为 environment.yml 。
您将在本文后面看到如何创建此环境文件。现在要使用提供给您的环境文件在您的计算机上创建环境,您可以运行以下命令。
conda env create -f environment.yml
请注意,这将要求您位于 environment.yml 文件所在的命令行/终端上的同一路径中。
创建这些环境时,它会提示您继续(请参阅下图)。如果您确实要继续,请键入 y 并按 enter,否则按 n。
Active Environment
创建环境后,您需要激活环境。这样做的命令是:
conda activate <env_name>
激活环境后,您将在命令行中的括号中看到它。
Deactivate Environment
同样,要停用环境,您只需运行:
conda deactivate
一旦环境被停用,您将返回到默认的基本环境。
Environment List
您可以通过运行以下命令获取在您的计算机上创建的所有环境的列表:
conda env list
运行此命令后,您将看到在您的计算机上创建的所有环境的列表以及可以找到这些环境的相关路径。 * 指当前活动环境,基本环境是默认环境。
环境中已安装包的列表
运行命令 conda list 将展示活动 conda 环境中所有已安装的包。从下图中可以看出,它展示了包的名称、版本和构建。
Export Virtual Environment
导出虚拟环境对于项目移交/协作至关重要。以下命令将允许您将当前活动环境导出到 environment.yml 文件中。以下命令将允许您导出环境:
conda env export > environment.yml
它应该产生以下文件:
克隆虚拟环境
当您知道一个项目所需的库与您之前从事的另一个项目不太相似时,克隆环境可以节省时间。以下命令允许您克隆环境:
conda create --name <clone_name> --clone <existing_env>
您可以将
删除虚拟环境
无论出于何种原因,您可能在某个时候想要删除现有的虚拟环境。以下命令向您展示了如何做到这一点。对要删除的尽可能多的环境重复该过程。
conda remove --name <env_name> --all
您将
Concluding Remarks
本质上,本教程概述了虚拟环境是什么,以及为什么应该在下一个项目中使用它们。在团队环境中工作时,使用虚拟环境至关重要,原因如下:
- 使结果的协作和可重复性更易于管理
- 减少依赖冲突的可能性
- 使项目交接更容易
如果您希望过渡到数据行业并希望获得经验丰富的导师的指导和指导,那么您可能需要查看 Sharpest Minds。 Sharpest Minds 是一个导师平台,导师(经验丰富的实践数据科学家、机器学习工程师、研究科学家、首席技术官等)将帮助您的发展和学习在数据领域找到工作。在这里查看它们。[0]
Resources
- [1] https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html[0]
- [2] https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html[0]
- [3] https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html#[0]
如果您喜欢阅读这篇文章,以下是我写的其他文章,您可能也会觉得很有见地:
文章出处登录后可见!