当前位置: 首页 > article >正文

通过.yml文件创建环境

使用 env.yml 文件来定义环境配置

这种创建环境的方式是通过一个 env.yml 文件来定义 Conda 环境的配置。env.yml 文件是一个 YAML 格式的文件,用于指定环境的名称、依赖的通道(channels)和所需的包及其版本。这种方式非常适合在团队中共享环境配置,或者在不同的机器上复现相同的开发环境。

创建环境的步骤:

  1. 保存 env.yml 文件:
    将上述内容保存到一个名为 env.yml 的文件中。
name: envs_name
channels:
  - pytorch
  - conda-forge
  - defaults
  - nvidia
dependencies:
  - python=3.10  # 更新 Python 为 3.10
  - cudatoolkit-dev=11.6  # 使用 CUDA 11.6
  - pytorch=1.13.0=py3.10_cuda11.6_cudnn8.3.2_0  # 使用 PyTorch 1.13.0 和 CUDA 11.6
  - torchvision=0.14.0  # 使用指定版本 torchvision
  - torchaudio=0.13.0  # 使用指定版本 torchaudio
  - mkl=2024.0
  1. 创建环境:
    在终端中运行以下命令来创建环境:
conda env create -f env.yml
  1. 激活环境:
    创建完成后,激活环境:
conda activate point

文件结构解释

  1. name: point
    作用:指定创建的 Conda 环境的名称。
    解释:这里创建的环境名称为 point。
  2. channels:
    作用:指定 Conda 在解析和安装包时优先使用的通道。
    解释:
    pytorch:PyTorch 官方通道,用于获取 PyTorch 相关的包。
    conda-forge:一个社区维护的通道,提供大量高质量的包。
    defaults:Conda 默认通道,包含 Conda 自带的包。
    nvidia:NVIDIA 官方通道,用于获取 CUDA 和 cuDNN 等包。
  3. dependencies:
    作用:列出需要安装的包及其版本。
    解释:
    python=3.10:指定 Python 的版本为 3.10。
    cudatoolkit-dev=11.6:安装 CUDA Toolkit 的开发版本 11.6。cudatoolkit-dev 包含了 CUDA 的头文件和库文件,适合开发 CUDA 程序。
    pytorch=1.13.0=py3.10_cuda11.6_cudnn8.3.2_0:安装 PyTorch 1.13.0,指定其依赖的 Python 版本为 3.10,CUDA 版本为 11.6,cuDNN 版本为 8.3.2。
    torchvision=0.14.0:安装 torchvision 的 0.14.0 版本,用于计算机视觉相关的功能。
    torchaudio=0.13.0:安装 torchaudio 的 0.13.0 版本,用于音频处理。
    mkl=2024.0:安装 Intel Math Kernel Library (MKL) 的 2024.0 版本,用于加速数学运算。
    numpy:安装 NumPy,一个用于科学计算的库。
    scipy:安装 SciPy,一个用于科学和工程计算的库。

不容易被影响导致装错版本

可复现性:通过 env.yml 文件,可以在不同的机器上创建完全相同的环境。
团队协作:团队成员可以共享 env.yml 文件,确保每个人使用相同的依赖版本。
清晰的依赖管理:明确列出所有依赖及其版本,避免版本冲突。

注意事项

通道优先级:Conda 会按照 channels 中列出的顺序查找包。如果某个包在多个通道中都存在,Conda 会优先选择第一个通道中的版本。
版本兼容性:确保指定的包版本之间是兼容的。例如,PyTorch 和 CUDA 的版本需要匹配。
环境变量:如果需要设置环境变量(如 CUDA_HOME),可以在创建环境后手动设置,或者在 env.yml 文件中使用 conda env config vars set 命令。


http://www.kler.cn/a/527907.html

相关文章:

  • [Collection与数据结构] B树与B+树
  • 22.Word:小张-经费联审核结算单❗【16】
  • 最近最少使用算法(LRU最近最少使用)缓存替换算法
  • HTML DOM 对象
  • (1)Linux高级命令简介
  • socket实现HTTP请求,参考HttpURLConnection源码解析
  • 反射、枚举以及lambda表达式
  • Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成
  • 想品客老师的第九天:原型和继承
  • Nginx代理
  • 面试回顾——1
  • JAVA实战开源项目:房屋租赁系统(Vue+SpringBoot) 附源码
  • Visual RAG: Expanding MLLM visual knowledge without fine-tuning 论文简介
  • 【文件整理】文件命名、存放、分类建议
  • JDK的动态代理:深入理解与实践
  • keil5如何添加.h 和.c文件,以及如何添加文件夹
  • 安装Maven(安装包+步骤)
  • 扶摇计划--从失业的寒冬,慢慢的走出来
  • PID 温控设计(基于 STC51)
  • 网络工程师 (9)文件管理
  • JavaScript闭包深入剖析:性能剖析与优化技巧
  • Windows系统本地部署deepseek 更改目录
  • 【C++语言】卡码网语言基础课系列----6. 数组的倒序与隔位输出
  • JMeter中常见的四种参数化实现方式是什么?_file test_params
  • 将markdown文件转为word文件
  • 【ArcMap零基础训练营】03 常用数据网站的数据下载及处理