关于Anaconda通过environment.yml配置环境的常见问题解决办法

配环境总是一个老生常谈的问题,有些项目写得好的,会把一些冗余的包删除,只留下必要的包,并且手把手教你pip安装,但是有些项目就直接丢一个200~300行的environment.yaml文件或者requirement.txt文件让你自己去配,虽然也有相关的环境配置内容,但能够按照步骤一次通过配置的可能性很低,而且大部分问题会跟系统环境、pytorch版本、anaconda版本有关,最终结果就是有些包配了半天终于配好了,结果代码里面直接一个注释不用了,总之就是让人十分折磨。本文决定对一些常见配环境问题进行一个简单的总结,希望可以帮到大家。

在conda中,一般通过yaml文件来配置环境的命令为:

conda env create -f environment.yml -n 环境名

但能够一次性成功配置环境属于少数情况,一般都会遇到配置太慢、卡死、solving environment failed、PackageNotFound、以及pip爆出的一堆红字

问题1:包找不到,且大部分都带有包的唯一标识符(例如hf484d3e_0、h1ccaba5_0)

分类讨论一下,如果只有少量的包,或许可以通过删除yaml文件中的唯一标识符限制来完成环境配置,yaml文件改动如下所示:

但是如果有很多包(带唯一标识符的)都找不到,就很有可能是系统环境不对导致的

例如尝试在windows10环境下配置linux中特有的一些包

当然这样也会导致一些其他包出现问题:

这个时候就需要敏锐一点,发现最后一个包的包名为ld_impl_linux-64,就可以反应过来配置的系统不对了。果断更换系统。

问题2:等待时间太长

建议加入一些快速的源(在conda中称为channel),比如清华源或者阿里源,如果有校内或者工作的内网源更好,确认网络连接正常。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

使用conda config --show channels

删除源使用conda config --remove channels 源名,

一般情况下,网络正常,配置时间不会太久

问题3:pytorch安装找不到匹配的版本号

ERROR: No matching distribution found for torch==1.12.1+cu102

这种情况其实是比较常见的,因为pytorch老版本中支持CUDA的版本是需要单独配置的

Previous PyTorch Versions | PyTorch


 

可以在官网上找到你需要的pytorch,然后在已经激活的conda环境中使用pip直接安装

例如这样:(很好的一点就是pytorch官网上可以找到所有的对应版本信息)

pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102

建议不要使用conda install的命令,因为它基本上不会安装GPU版本的pytorch

下图为使用conda install的安装结果:(其实这个packageplan就可以看出它安装的不是torch包而是pytorch包,很奇怪)

关于pytorch cuda版本的选择问题,先试用一下nvidia-smi命令查看自己是否安装CUDA

只要这里显示的CUDA版本号大于安装的pytorch版本号就可以了

例如torch==1.12.1+cu102的CUDA版本为10.2,当前系统的CUDA版本为11.4,说明可以直接安装这个版本的pytorch

问题4:下载包到一半突然一大片红ERROR,一般包含time out字样

socket.timeout: The read operation timed out或者ReadTimeoutError: HTTPSConnectionPool(host='download.pytorch.org', port=443): Read timed out.

这个主要是网络波动导致的,也有可能是远端的服务器网络出现问题,也有可能是自己的源没配好,访问不稳定。总之是网络上的问题。

重新尝试命令即可,对于已经下载好的包,pip会读取自己的缓存cache,不会让你重复下载的。

问题5:安装某个包的时候,它自动把已经装好的pytorch删掉了,重新安装了另一个版本

这种情况一般为安装一些高级的深度学习库会遇到,例如DGL、allennlp等等

在yaml的pip列表中可以先扫一眼,看看有没有这种包,如果有就留到最后单独安装,在官网上查询对应的pytorch版本来判断应该这么安装。

如果不知道是不是这种有依赖关系的深度学习库时,可以先装pytorch,再装其他库,如果发现在下载新的pytorch版本就立刻终止,早发现早治疗。

如果最后单独安装的时候仍然pytorch版本不对,说明可能源代码根本就没用这个库,也可以在官网上选择一个高相邻版本的库进行安装,一般都可以正常运行。

如果不想使用conda install来配置整个环境,可以使用以下命令(在conda的目标环境下)

pip install -r requirements.txt

在包比较少的情况下也可以用pip install手动硬装

但记住安装完成之后需要执行一下pip check命令,看一下是不是所有的包的依赖关系都正确了

另外给出一个实用的pip和conda小技巧

pip cache purge

conda clean --all

可以清除pip管理器和conda管理器中的缓存,避免一些大型包下载的一半中断导致系统内存被占的问题,例如tensorflow和pytorch。

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

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

相关文章

C++之类和对象的中篇

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

代码随想录——删除有序数组中的重复项(Leetcode26)

题目链接 双指针思想&#xff0c;和上一篇Leetcode27类似 class Solution {public int removeDuplicates(int[] nums) {int slow 0;for(int fast 1; fast < nums.length; fast){if(nums[fast] ! nums[slow]){nums[slow] nums[fast];}}return slow 1;} }

基于Arduino IDE 野火ESP8266模块 JSON数据格式处理

一、库文件 ArduinoJSON 可以使用 ArduinoJSON库 来解析和处理JSON数据。 二、JSON数据 序列化 Serialization 序列化&#xff08;serialization&#xff09;&#xff1a; 序列化是将数据结构或对象状态转换为可存储或传输的格式。 测试代码&#xff1a; #include <Ardu…

【并发编程】线程的基础概念

一、基础概念 1.1 进程与线程A 什么是进程&#xff1f; 进程是指运行中的程序。 比如我们使用钉钉&#xff0c;浏览器&#xff0c;需要启动这个程序&#xff0c;操作系统会给这个程序分配一定的资源&#xff08;占用内存资源&#xff09;。 什么线程&#xff1f; 线程是CP…

如何批量给照片添加圆角?为什么要给照片添加圆角?

公司在对外宣传过程中&#xff0c;往往要要求图片修成圆角。比如在网上公司&#xff0c;就下达过这样的任务&#xff0c;在短时间内将公司所有的物品图片都修成圆角。遇到这种情况哪怕是用专业的PS工具&#xff0c;解决这个问题也是非常麻烦的。那么图片怎么修成圆角又快又高效…

linux离线安装maven

一、下载maven 地址&#xff1a;Maven – Download Apache Maven 使用root权限用户登录服务器 cd /opt sudo mkdir maven cd maven 二、上传maven 使用Xftp工具 三、解压并配置环境变量 tar -zxvf tar -zxvf apache-maven-3.9.6-bin.tar.gz cd apache-maven-3.9.6/ 看到解压…

【Hadoop大数据技术】——Hive数据仓库(学习笔记)

&#x1f4d6; 前言&#xff1a; Hive起源于Facebook&#xff0c;Facebook公司有着大量的日志数据&#xff0c;而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架&#xff0c;可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发&#xff0c;但…

【CKA模拟题】综合案例演示如何创建pv和pvc

Useful Resources: Persistent Volumes & Claim 题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesCreate a PersistentVolume (PV) and a PersistentVolumeClaim (PVC) using an e…

半导体实验用耐氢氟酸含氟塑料镊子金属杂质含量低

PFA镊子用于夹取小型片状、薄状、块状样品&#xff0c;广泛应用在半导体、新材料、新能源、原子能、石油化工、无线电、电力机械等行业。 具有耐高低温性&#xff08;可使用温度-200℃&#xff5e;&#xff0b;260℃&#xff09;、耐腐蚀、表面不粘性等特点&#xff0c;用于苛…

STM32嵌套中断向量控制器NVIC

一、嵌套终端向量控制器NVIC 1.1NVIC介绍 NVIC&#xff08;Nest Vector Interrupt Controller&#xff09;&#xff0c;嵌套中断向量控制器&#xff0c;作用是管理中断嵌套 先级。 核心任务是管理中断优 管理中断嵌套&#xff1a;我们在处理某个中断的过程中还没处理完这个中…

c++类和对象———拷贝构造和赋值运算符重载

衔接上一篇博客构造函数和析构函数c类和对象————构造函数和析构函数 目录 ​编辑 一、拷贝构造是什么&#xff1f; 二、拷贝构造 1.特点 2.代码解释拷贝构造参数类型&#xff08;重点&#xff09; 3.代码解释编译器默认拷贝构造 &#xff08;重点&#xff09; 4.构造函数、…

vite vue3 import.meta.glob动态路由

在Vite中使用Vue 3&#xff0c;你可以使用import.meta.glob来导入目录下的多个Vue组件&#xff0c;并自动生成路由。以下是一个简单的例子&#xff1a; router/index.js // router/index.js import { createRouter, createWebHistory } from vue-router;// 自动导入views目录下…

基于Spring Boot的在线学习系统的设计与实现

基于Spring Boot的在线学习系统的设计与实现 摘 要 在线学习系统是以大学传统线下教学方式不适应信息技术的迅速发展为背景&#xff0c;提高学习效率&#xff0c;解决传统教学问题&#xff0c;并且高效的实现教学信息化的一款软件系统。为了更好的实现对于教学和学生的管理&a…

词令外卖节红包天天神券每天领取直达入口

词令外卖节红包天天领直达入口 1、打开「词令」关键词口令直达微信小程序&#xff1b; 2、输入词令「外卖红包88」关键词直达口令&#xff1b; 3、搜索直达进入外卖红包天天领入口&#xff0c;即可成功领取外卖节红包和天天神券点外卖可享受券后价优惠&#xff1b; *温馨提醒&…

HTML5通过api实现拖放效果 dataTransfer对象

dataTransfer对象 说明&#xff1a;dataTransfer对象用于从被拖动元素向放置目标传递字符串数据。因为这个对象是 event 的属性&#xff0c;所以在拖放事件的事件处理程序外部无法访问 dataTransfer。在事件处理程序内部&#xff0c;可以使用这个对象的属性和方法实现拖放功能…

无药可医还能怎么办?越没本事的人,越喜欢从别人身上找原因!——早读(逆天打工人爬取热门微信文章解读)

无药可医的病该怎么办呢&#xff1f; 引言Python 代码第一篇 洞见 《骆驼祥子》&#xff1a;越没本事的人&#xff0c;越喜欢从别人身上找原因第二篇 人民日报 来啦 新闻早班车要闻社会政策 结尾 “吾日三省吾身&#xff0c;而后深知自助者天助之。” 在人生的迷宫中 遭遇困境时…

uniapp-打包IOS的APP流程

打包前所需配置 在manifest文件内配置 1. APP图标 2. 启动界面 有三种启动界面配置 第一种是 HBuilderX 官方给的通用启动界面&#xff0c;页面单一&#xff0c;屏幕中间就一个圆框图标 第二种是自定义的启动图&#xff0c;无法通过AppStore的审核 第三种是自定义storyboard启动…

论文研读:Transformers Make Strong Encoders for Medical Image Segmentation

论文&#xff1a;TransUNet&#xff1a;Transformers Make Strong Encoders for Medical Image Segmentation 目录 Abstract Introduction Related Works 各种研究试图将自注意机制集成到CNN中。 Transformer Method Transformer as Encoder 图像序列化 Patch Embed…

特殊数据类型

目录 记录类型 定义一个记录类型 myrecord_type&#xff0c;用于存储 emp 数据表中的员工姓名和职务 %TYPE 类型 定义一个变量&#xff0c;存储数据表 emp 中编号为 7369 的员工姓名&#xff0c;并且显示出结果 %ROWTYPE 类型 声明一个用于存储 emp 数据表中每行记录的变…

【力扣hot100】160.相交链表

相交链表 给你两个单链表的头节点 headA和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回…