Conda python管理环境environments 四 从入门到精通

发布时间:2024年01月23日

Conda系列:

  1. 翻译: Anaconda 与 miniconda的区别
  2. Miniconda介绍以及安装
  3. Conda python运行的包和环境管理 入门
  4. Conda python管理环境environments 一 从入门到精通
  5. Conda python管理环境environments 二 从入门到精通
  6. Conda python管理环境environments 三 从入门到精通
    在这里插入图片描述

1. 设置环境变量

如果要将环境变量与环境相关联, 您可以使用配置 API。建议将其作为 使用 activate 和 deactivate 脚本,因为这些脚本是 可能不安全的任意代码。

首先,创建环境并激活它:

conda create -n test-env
conda activate test-env

要列出您可能拥有的任何变量,请运行conda env config vars list .

要设置环境变量,请运行conda env config vars set my_var=value

设置环境变量后,必须重新激活环境:conda activate test-env .

要检查是否已设置环境变量,请运行 echo $my_var(在 Windows 上cho %my_var%)或 conda env config vars list.

停用环境时,可以使用这些相同的命令来查看 环境变量消失。

您可以使用-n-p 标志指定要影响的环境。该-n标志允许您命名环境,-p并允许您指定环境的路径。

要取消设置环境变量,请运行conda env config vars unset my_var -n test-env

停用环境时,可以看到环境变量通过重新运行而消失echo my_varconda env config vars list显示变量名称 不再存在。

使用conda env config vars设置的环境变量将保留在conda env export .此外,您可以在environment.yml文件中声明环境变量 如下所示:

name: env-name
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.7
  - codecov
variables:
  VAR1: valueA
  VAR2: valueB

2. 保存环境变量

Conda 环境可以包含已保存的环境变量。

在 Windows 和 macOS 或 Linux假设您想要一个环境“分析”来存储 登录服务器所需的密钥和 配置文件。以下各节解释了如何编写env_vars的脚本。

这种类型的脚本文件可以是 conda 包的一部分,位于 在这种情况下,这些环境变量在 包含该包的环境已激活。

您可以将这些脚本命名为您喜欢的任何名称。但是,多个 包可能会创建脚本文件,因此请务必使用描述性 其他包未使用的名称。一个流行的选择是 在表单中为脚本命名packagename-scriptname.sh 或在 Windows 上packagename-scriptname.bat, .

2.1 Windows

  1. 在 终端窗口,通过在命令 shell 中运行%CONDA_PREFIX%
  2. 输入该目录并创建这些子目录和 文件:
cd %CONDA_PREFIX%
mkdir .\etc\conda\activate.d
mkdir .\etc\conda\deactivate.d
type NUL > .\etc\conda\activate.d\env_vars.bat
type NUL > .\etc\conda\deactivate.d\env_vars.bat
  1. 编辑 .\etc\conda\activate.d\env_vars.bat 如下:
set MY_KEY='secret-key-value'
set MY_FILE=C:\path\to\my\file
  1. 编辑 .\etc\conda\deactivate.d\env_vars.bat 如下:
set MY_KEY=
set MY_FILE=

当您运行conda activate analytics 时,环境变量MY_KEYMY_FILE设置为写入文件的值。 运行conda deactivate 时,这些变量将被擦除。

2.2 macOS 和 Linux

  1. 在终端窗口中找到 conda 环境的目录, 通过在终端窗口中运行echo $CONDA_PREFIX
  2. 输入该目录并创建这些子目录和 文件:
cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
  1. ./etc/conda/activate.d/env_vars.sh编辑如下:
#!/bin/sh

export MY_KEY='secret-key-value'
export MY_FILE=/path/to/my/file/
  1. ./etc/conda/deactivate.d/env_vars.sh编辑如下:
#!/bin/sh

unset MY_KEY
unset MY_FILE

当您运行conda activate analytics 时,环境变量MY_KEYMY_FILE设置为写入文件的值。 运行conda deactivate 时,这些变量将被擦除。

3. 共享环境

您可能希望与其他人共享您的环境— 示例,以便他们可以重新创建您已完成的测试。自 允许他们快速重现您的环境,以及所有 软件包和版本,给他们一份你的environment.yml 文件。

3.1 导出environment.yml文件

Note注意
如果您已经有一个文件environment.yml 当前目录,它将在此任务期间被覆盖。

  1. 激活要导出的环境:conda activate myenv

Note注意
myenv替换为环境的名称。

  1. 将活动环境导出到新文件:
conda env export > environment.yml

Note注意
此文件处理环境的两个 pip 包 和 conda 包。

  1. 通过电子邮件将导出的environment.yml文件发送到 其他人。

3.2 跨平台导出环境文件

如果要使环境文件跨平台工作, 您可以使用该标志conda env export --from-history 。这 将仅包含您明确要求的软件包, 而不是将每个包都包含在您的环境中。

例如,如果创建环境并安装 Python 和package:

conda install python=3.7 codecov

这将下载并安装许多其他软件包来解决 用于依赖项。这将引入可能不兼容的软件包 跨平台。

如果使用conda env export ,它将导出所有这些包。 但是,如果您使用 conda env export --from-history,它将 仅导出您专门选择的那些:

(env-name) ?  ~ conda env export --from-history
name: env-name
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.7
  - codecov
prefix: /Users/username/anaconda3/envs/env-name

Note注意
如果您在 macOS 上安装了 Anaconda 2019.10,您的前缀可能是/Users/username/opt/envs/env-name .

4. 手动创建环境文件

您可以手动创建环境文件 environment.yml 与他人分享。

示例:一个简单的环境文件:

name: stats
dependencies:
  - numpy
  - pandas

示例:一个更复杂的环境文件:

name: stats2
channels:
  - javascript
dependencies:
  - python=3.9
  - bokeh=2.4.2
  - conda-forge::numpy=1.21.*
  - nodejs=16.13.*
  - flask
  - pip
  - pip:
    - Flask-Testing

您可以通过添加 nodefaults到频道列表。

channels:
  - javascript
  - nodefaults

这等效于传递--override-channels选项 到大多数conda命令。

environment.yml中的channels列表添加nodefaults与在.condarc文件中的channels列表中移除defaults类似。然而,修改environment.yml只影响您的一个conda环境,而修改.condarc会影响所有conda环境。

有关使用此 environment.yml 文件创建环境的详细信息,请参阅从 environment.yml 文件创建环境

5. 还原环境

Conda 保留对环境所做的所有更改的历史记录, 因此,您可以轻松地“回滚”到以前的版本。要列出对当前环境的每次更改的历史记录,请执行以下操作:

conda list --revisions

将环境恢复到先前版本:conda install --revision=REVNUMconda install --rev REVNUM

如果你想将你的环境恢复到第8个版本,运行conda install --rev 8

6. 删除环境

若要删除环境,请在终端窗口中运行:

conda remove --name myenv --all

您可以使用conda env remove --name myenv来代替。

若要验证环境是否已删除,请在终端窗口中运行:

conda info --envs

显示的环境列表不应显示已删除的 环境。

参考

https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

文章来源:https://blog.csdn.net/zgpeace/article/details/135761099
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。