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.mzph.cn/news/640764.shtml

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

相关文章

【Linux】解决能访问github但克隆不了的问题

文章目录 1.查看你的代理的地址:2.git设置3.尝试clone 1.查看你的代理的地址: 2.git设置 先看看当前的git设置 $ git config --list然后git中要设置好对应的地址 git config --global http.proxy 127.0.0.1:78903.尝试clone $ git clone https://git…

服务器感染了.wis[[Rast@airmail.cc]].wis勒索病毒,如何确保数据文件完整恢复?

导言: 在当今数字化的时代,恶意软件攻击已经变得越来越复杂和狡猾,[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis[[Rastairmail.cc]].wis勒索病毒是其中的一种新威胁。本文91数据恢复将深入介绍[[MyFilewaifu.club]].wis [[backupwaif…

机器学习实验报告-集成学习

目录 一、集成学习介绍 1.1集成学习的引入 1.2集成学习发展史 1.3集成学习的学习组织方式 1.3.1并联组织关系 1.3.2串联组织关系 1.4集成学习及其实现方法概述 二、集成学习实现方法 2.1Boosting 2.1.1基本过程 2.1.2注意点 2.2bagging 2.2.1基本过程 2.2.2注意点…

[SpringBoot2.6.13]FastJsonHttpMessageConverter不生效

文章目录 错误描述问题分析打印目前所有的消息处理器寻找适配版本消息解释器加载顺序 错误原因正确写法使用最新版本fastjson(2024-1-22)配置fastjson2消息转换器(保留系统原消息转换器)替换消息转换器配置fastjson2 错误描述 采用Bean的方式配置FastJsonHttpMessageConverter…

苹果眼镜(Vision Pro)的开发者指南(4)——ARKit插件

该平台运用ARKit算法,处理持久性、世界映射、分割、遮罩和环境照明等功能。这些算法持续运行,使得应用和游戏在共享空间中自动受益于ARKit。一旦应用启动专用的Full Space,它便能利用ARKit API,完美融合虚拟与现实世界。 在此,我们将深入探讨这个框架如何重新定义交互体验…

React16源码: React中的reconcileChildren的源码实现

reconcileChildren 1 )概述 在更新了一个节点之后,拿到它的props.children要根据这个children里面的 ReactElement 来去创建子树的所有的 fiber 对象要根据 props.children 来生成 fiber 子树,然后判断 fiber 对象它是否是可以复用的 因为我…

QT实现USB通讯

一.概述 QT实现USB通讯这里主要介绍两种方法,一种是通过libusb库来实现usb通讯,一种是通过hidapi库实现通信。 1.介绍libusb库 libusb 是一个 C 库,提供对 USB 设备的通用访问。 可移植的:使用单个跨平台API,它可以…

一、防御保护---信息安全概述

一、网络安全防御---信息安全概述 1.信息安全现状及挑战1.1 网络空间安全市场在中国,潜力无穷1.2 数字化时代威胁升级1.3 传统安全防护逐步失效1.4 安全风险能见度不足1.5 缺乏自动化防御手段1.6 网络安全监管标准愈发严苛 2.信息安全概述2.1 简介2.2 常见的网络安全…

Java 设计者模式以及与Spring关系(四) 代理模式

目录 简介: 23设计者模式以及重点模式 代理模式(Proxy Pattern) 静态代理示例 spring中应用 动态代理 1.基于JDK的动态代理 target.getClass().getInterfaces()作用 内名内部类写法(更简洁,但不推荐) 2.基于CGLIB实现 spring中应用 …

uniapp使用自定义组件

tt.vue中使用video-player组件 用到的目录如下: pages.json {"path": "pages/Tabbar/tt/tt","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,// 使用自定义组件"using…

C++ 类定义

C 类定义 定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。 定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么&#xff0…

【论文阅读笔记】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

1.介绍 Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation Swin-Unet:用于医学图像分割的类Unet纯Transformer 2022年发表在 Computer Vision – ECCV 2022 Workshops Paper Code 2.摘要 在过去的几年里,卷积神经网络&#xff…

14.任务管理系统

功能描述 角色 管理员、项目经理、员工 管理员功能 录入基础信息、用户信息。 项目经理功能 登陆系统录入项目信息、需求信息、拆解任务、分配任务 员工功能 登陆系统,查看任务、记录任务工作日志、完成任务。 数据模型 项目表 t_jd_project 字段名 类型 …

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML&…

CentOS 7 安装配置MySQL

目录 一、安装MySQL​编辑​编辑 1、检查MySQL是否安装及版本信息​编辑 2、卸载 2.1 rpm格式安装的mysql卸载方式 2.2 二进制包格式安装的mysql卸载 3、安装 二、配置MySQL 1、修改MySQL临时密码 2、允许远程访问 2.1 修改MySQL允许任何人连接 2.2 防火墙的问题 2…

大哈的变换迷宫的题解

目录 原题描述: 【题目描述】 【输入格式】 【输出格式】 【样例输入】 【样例输出】 【数据范围】 题目大意: 主要思路: 代码code(附有注释) 时间限制: 1000ms 空间限制: 524288kB 原题描述: …

【webrtc】跟webrtc学时间戳、序号类型转换

间隔ms src\modules\congestion_controller\remb_throttler.ccnamespace {constexpr TimeDelta kRembSendInterval = TimeDelta::Millis(200); } // namespace百分比的处理 src\modules\congestion_controller\remb_throttler.ccvoid RembT

行业-职业-大全-JSON

数据来源: https://blog.csdn.net/wjwABCDEFG/article/details/115669504 已将JSON进行格式处理 [{"Industry": "人事/行政/后勤","Occupations": ["人事专员/助理","人事信息系统(HRIS)管理","人事总监…

kotlin 简单实现实体类的Parcelable序列化接口

以前用Java代码实现Parcelable序列化接口,需要在实体类里面写一堆代码,麻烦得很,现在用kotlin开发安卓APP,只需2步就可以实现,这里记录下; 1. 在模块的build.gradle文件如下配置: apply plugi…

TCP三握四挥(面试需要)

TCP建立连接需要三次握手过程,关闭连接需要四次挥手过程 三次握手 从图中可以看出,客户端在发起connect时,会发起第一次和第三次握手。服务端在接收客户端连接时,会发起第二次握手。 这三次握手,都会通过SYNACK的方式…