环境#
conda 中的环境是独立的、隔离的空间,您可以在其中安装特定版本的软件包,包括依赖项、库和 Python 版本。这种隔离有助于避免包版本之间的冲突,并确保您的项目拥有所需的精确库和工具。
为什么我应该创建一个新环境?#
您可能想要创建一个新环境的原因有几个
依赖项隔离 - 环境将软件及其依赖项与计算机上安装的其他软件隔离。这意味着您的计算机上可以同时安装 Python 3.9 和 Python 3.10,并且可以使用这两个版本而不会遇到问题。
可重现性 - 通过为每个项目创建一个环境,您可以确保您的代码在不同的机器上一致运行。锁定您的环境以确保它无限期地保持可重现性,然后共享环境配置以允许其他人复制您的设置。
易于管理 - Conda 提供了轻松创建、管理和删除环境的工具。您可以快速在环境之间切换,从而可以轻松管理具有不同需求的多个项目。
测试和开发 - 环境非常适合测试新包或库,而不会影响您稳定的开发设置。您可以自由地进行实验,并在事情不顺利时删除环境,而不会影响您的其他项目。
为什么我不应该在基本环境中工作?#
首次安装和使用 conda 时,您可能看到了对名为 base
或“基本环境”的引用。此环境是 conda 本身安装的位置,应仅用于安装 anaconda、conda 和 conda 相关包,例如 anaconda-client
或 conda-build
。
但是,对于您的项目,Anaconda 强烈建议创建新环境来工作。这可以保护您的基本环境免受复杂依赖项冲突的破坏,并允许您轻松管理和在其他机器上重现您的环境。
使用环境#
为了方便起见,此处详细介绍了用户在管理环境时采取的最常见操作。有关操作的完整列表和更全面的指南,请参阅官方 conda 文档中的管理环境。或者,请按照我们在 Anaconda Cloud 上的Conda 环境入门教程进行操作。
提示
如果您喜欢通过我们的图形界面 Navigator 创建和管理环境,请参阅管理环境。
创建环境#
通过打开 Anaconda Prompt(macOS/Linux 上的终端)并按照以下针对您的用例的步骤来创建 conda 环境
以下命令创建一个新环境并下载指定的包及其依赖项
# Replace <ENV_NAME> with a name for your environment
# Replace <PACKAGE> with your desired package
# Replace <VERSION> with your desired version (optional)
conda create --name <ENV_NAME> <PACKAGE>=<VERSION>
示例
conda create --name myenv python=3.11 beautifulsoup4 docutils jinja2=3.1.4 wheel
版本匹配输入示例
版本匹配使用 Matchspec 协议。以下是一些在创建环境时指定包版本的示例。有关更多信息,请参阅官方 conda 文档中的MatchSpec。如果您未指定包版本,conda 将尝试从其可用频道安装该包的最新版本。
python=3.12.1
- 匹配具有指定的确切名称和版本的包。
python>=3.11
- 匹配任何版本大于或等于指定版本的包。
python<=3.12
- 匹配任何版本小于或等于指定版本的包。
python>3.10,<3.12
- 匹配指定版本之间的任何包版本,但不包括指定的版本。
python>=3.10,<=3.12
- 匹配指定版本之间的任何包版本,包括指定的版本。
python[version='3.12.*']
- 匹配任何以 3.12 开头的 python 包版本。
激活环境#
由于环境是隔离的空间,因此您一次只能使用一个环境。选择要使用的环境称为激活环境。
通过运行以下命令激活环境
# Replace <ENV_NAME> with the name of the environment you want to activate conda activate <ENV_NAME>
在环境之间切换#
当您准备好在项目之间切换时,只需激活您的其他项目的环境。激活不同的环境将停用您当前的环境。
(可选)通过运行以下命令查看所有环境的列表
conda info --envs
要切换到不同的环境,请通过运行以下命令激活它
# Replace <ENV_NAME> with the name of the environment you want to switch to conda activate <ENV_NAME>
锁定环境#
确保您的项目无限期地保持可重现性的最可靠方法是“锁定”其环境。锁定环境会创建一个完全指定的环境,该环境具有项目中使用的所有包及其依赖项,并配置为特定版本。这确保了您的项目将完全按照最初配置的方式重现,因为如果发布新的包依赖项,则永远不会出现意外的更新或更改。
锁定您的项目需要将 conda-project
包安装在您要锁定的环境中。通过运行以下命令安装包
# Replace <ENV> with the environment you want to lock
conda activate <ENV>
conda install conda-project
如果您的项目不包含 environment.yml
文件,请通过运行以下命令创建一个
conda-project init
然后,您可以通过运行以下命令来锁定您的项目环境
conda-project lock
锁定您的项目会生成一个 conda-lock.default.yml
文件,您可以导出该文件以与他人共享。
停用环境#
最佳实践是在您完成环境中的工作后停用环境。
要停用您当前激活的环境,请运行以下命令
conda deactivate