Conda系列:
- 翻译: Anaconda 与 miniconda的区别
- Miniconda介绍以及安装
- Conda python运行的包和环境管理 入门
- Conda python管理环境environments 一 从入门到精通
1. 指定环境environment的位置
可以通过提供路径来控制 conda 环境所在的位置 复制到目标目录。例如 以下命令将在子目录中创建一个新环境 envs
为当前工作目录称:
bash
conda create --prefix ./envs jupyterlab=3.2 matplotlib=3.5 numpy=1.21
然后,使用前缀激活使用前缀创建的环境 用于激活按名称创建的环境的命令:
bash
conda activate ./envs
指定项目目录的子目录的路径,当 创建环境具有以下好处:
- 它可以很容易地判断您的项目是否使用隔离环境 通过将环境作为子目录包含在内。
- 它使您的项目更加独立,包括 所需的软件包含在单个项目目录中。
在 子目录是,然后你可以对所有你的 环境。如果您将所有环境都保留在 envs
文件夹中,您必须为每个环境指定不同的名称。
放置 conda 环境时需要注意一些事项 在默认文件夹envs
之外。
- Conda 无法再找到带有
--name
该标志的环境。 您通常需要将标志--prefix
与 environment 的完整路径来查找环境。 - 在创建 conda 环境时指定安装路径 使命令提示符现在以活动状态为前缀 环境的绝对路径,而不是环境的名称。
使用前缀激活环境后,您的提示将 类似于以下内容:
bash
(/absolute/path/to/envs) $
这可能会导致前缀过长:
bash
(/Users/USER_NAME/research/data-science/PROJECT_NAME/envs) $
若要在 shell 提示符中删除此长前缀,请修改env_prompt 在.condarc
文件中设置:
bash
conda config --set env_prompt '({name})'
如果您已经有一个文件.condarc
,这将编辑您的文件.condarc
或者,如果没有,请创建一个文件。
现在,您的命令提示符将显示活动环境的 通用名称,即环境根文件夹的名称:
bash
$ cd project-directory
$ conda activate ./env
(env) project-directory $
2. 更新环境environment
出于各种原因,您可能需要更新环境。 例如,可能的情况是:
- 您的一个核心依赖项刚刚发布了一个新版本 (依赖项版本号更新)。
- 您需要一个额外的数据包来进行数据分析 (添加新的依赖项)。
- 您已经找到了更好的软件包,不再需要旧的 包(添加新依赖项并删除旧依赖项)。
如果发生其中任何一种情况,您需要做的就是更新 您的文件environment.yml
,然后运行以下命令 命令:
bash
conda env update --file environment.yml --prune
Note注意
该选项
--prune
会导致 conda 删除任何依赖项 环境不再需要的。
3. Cloning an environment克隆环境
使用终端执行以下步骤:
您可以通过创建克隆来创建环境的精确副本 其中:
bash
conda create --name myclone --clone myenv
Note注意
替换
myclone
为新环境的名称。 替换myenv
为现有环境的名称。
要验证副本是否已制作,请执行以下操作:
bash
conda info --envs
在显示的环境列表中,您应该会看到 源环境和新副本。
4. 构建相同的 conda 环境
您可以使用显式规范文件来构建相同的 conda 环境位于同一操作系统平台上,或者 在同一台机器或另一台机器上。
使用终端执行以下步骤:
- 运行
conda list --explicit
以生成规范列表,例如:
bash
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
@EXPLICIT
https://repo.anaconda.com/pkgs/free/osx-64/mkl-11.3.3-0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/numpy-1.11.1-py35_0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/openssl-1.0.2h-1.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/pip-8.1.2-py35_0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/python-3.5.2-0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/readline-6.2-2.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/setuptools-25.1.6-py35_0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/sqlite-3.13.0-0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/tk-8.5.18-0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/wheel-0.29.0-py35_0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/xz-5.2.2-0.tar.bz2
https://repo.anaconda.com/pkgs/free/osx-64/zlib-1.2.8-3.tar.bz2
- 将此packages列表创建为当前工作中的文件 目录中,运行:
bash
conda list --explicit > spec-file.txt
Note注意
您可以用作
spec-file.txt
文件名或替换 它带有您选择的文件名。
显式规范文件通常不是跨平台的,并且 因此在顶部有一个注释,例如# platform: osx-64
显示创建它的平台。这个平台是 已知此规范文件可以工作的地方。在其他平台上, 指定的包可能不可用或依赖项 对于中已有的某些关键包,可能缺少 规范。
要使用 spec 文件在 同一台机器或另一台机器:
bash
conda create --name myenv --file spec-file.txt
要使用 spec 文件将其列出的软件包安装到 现有环境:
bash
conda install --name myenv --file spec-file.txt
Conda 在安装时不检查体系结构或依赖项 从规范文件。为确保软件包正常工作, 确保文件是从工作环境创建的, 并在相同的架构、操作系统和 平台,例如 Linux-64 或 OSX-64。
参考
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html