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

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: valueAVAR2: 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/shexport MY_KEY='secret-key-value'
export MY_FILE=/path/to/my/file/
  1. ./etc/conda/deactivate.d/env_vars.sh编辑如下:
#!/bin/shunset 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/423049.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--文件链接

目录 1.建立软连接 2.建立硬链接 3.什么是软链接 Linux中软链接的应用场景 4.什么是硬链接 5.文件与目录的硬链接数 6.软链接与硬链接的区别 用户无法对目录建立硬链接,可以建立软连接。 在Linux中文件的链接有两种:1.软连接 2.硬链接 1.建立软…

c++学习第十一讲---文件操作

文件操作&#xff1a; c中对文件操作需要包含头文件 < fstream > 文本文件&#xff1a;以ASCII码形式储存 二进制文件&#xff1a;以二进制文件储存&#xff08;读不懂&#xff09; 操作文件三大类&#xff1a; 读&#xff1a;ifstream ; 写&#xff1a;ofstream ; 读…

NodeJs 第二十一章 模版引擎

模板引擎是一种用于生成动态网页的工具。它将静态的模板文件与动态的数据源相结合&#xff0c;生成最终的网页。模板引擎通常用于Web开发中&#xff0c;可以方便地将数据动态地插入到页面中&#xff0c;从而生成具有动态内容的网页。 模板引擎的核心功能是数据绑定和逻辑控制。…

GPT-4 的决策在股市中进行量化投资

论文题目:Can Large Language Models Beat Wall Street? Unveiling the Potential of AI in Stock Selection 论文链接:https://arxiv.org/abs/2401.03737 博客地址:https://www.marketsense-ai.com/ 从本质上来说&#xff0c;股票选择是个价格发现机制&#xff0c;在股票投…

JAVA:OFD Reader Writer 开源库技术解析

1、简述 OFD Reader & Writer 是一个由开源社区推动的 OFD 文件处理库&#xff0c;它旨在提供对 OFD 格式文件的读取和写入功能。这一开源项目为开发者提供了强大而灵活的工具&#xff0c;使得在应用程序中处理和生成 OFD 文件变得更加容易和高效 开源地址&#xff1a;htt…

【开源】基于JAVA语言的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

【江科大】STM32:定时器中断

文章目录 TIM&#xff08;Timer&#xff09;定时器根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型基本定时器通用定数器 高级定时器 时钟&#xff08;时钟电路&#xff09;的作用是什么&#xff1a;设置定时器触发中断普通方法&#xff1a;预分频器时序…

《WebKit 技术内幕》学习之九(2): JavaScript引擎

2 V8引擎 2.1 基础 V8是一个开源项目&#xff0c;也是一个JavaScript引擎的实现。它最开始是由一些语言方面的专家设计出来的&#xff0c;后被Google收购&#xff0c;成为了JavaScript引擎和众多相关技术的引领者。其目的很简单&#xff0c;就是为了提高性能。因为在当时之前…

FastDFS分布式文件存储

为什么会有分布式文件系统&#xff1f; 分布式文件系统是面对互联网的需求而产生。因为互联网时代要对海量数据进行存储。很显然靠简单的增加硬盘个数已经满足不了我们的要求。因为硬盘传输速度有限但是数据在急剧增长&#xff0c;另外我们还要要做好数据备份、数据安全等。采用…

Vue2中CesiumV1.113.0加载离线地图

Vue2中CesiumV1.113.0加载离线地图&#xff0c;本文以天地图为例。 1.使用nodejs获取天地图 新建nodejsdownmap项目文件夹&#xff0c;初始化项目 npm init -y src/index.js // An highlighted block var Bagpipe require(bagpipe) var fs require("fs"); var r…

Kafka-服务端-日志存储

基本概念 首先需要了解的是&#xff0c;Kafka使用日志文件的方式保存生产者发送的消息。每条消息都有一个offset值来表示它在分区中的偏移量&#xff0c;这个offset值是逻辑值&#xff0c;并不是消息实际存放的物理地址。 offset值类似于数据库表中的主键&#xff0c;主键唯一…

【GitHub项目推荐--中国 Web 开发者路线图】【转载】

中国 Web 开发者路线图 在你学技术进阶的路上&#xff0c;如果你对接下来要学习的内容感到困惑&#xff0c;可以看看这个开源项目&#xff0c;这是中国 Web 开发者路线图。 它会让你对技术全景有一个了解&#xff0c;并在为你提供指导&#xff0c;该路线图并不会鼓励你选择时…