解决方案:aarch64 ARM架构下安装Miniconda + 离线迁移Conda环境的全流程 踩坑避坑指南

news2024/11/29 0:45:38

目录

  • 一、安装Miniconda
    • 1.1、确认本机架构
    • 1.2、下载Miniconda安装包
    • 1.3、安装Miniconda
  • 二、离线配置Conda环境
    • 2.1、查看本机配置
    • 2.2、迁移虚拟环境
    • 2.3、可能遇见的报错
  • 最后

在ARM架构下,由于Anaconda并不提供官方的ARM版本,在很多情况下强行在ARM系统中安装Anaconda会出现很多未知错误。因此更适合安装Miniconda。Miniconda是Anaconda的一个精简版本,它只包含conda包管理器和最基本的库,因此在资源受限的环境下更加适用。

本博客记录在华为多瑙 HPC集群的服务器下离线安装Miniconda和迁移虚拟环境的全过程。

一、安装Miniconda

1.1、确认本机架构

在安装前需要查看本机的系统架构,确认机器为ARM架构,输入指令:uname -m,如果返回结果为aarch64:

在这里插入图片描述
aarch64表示系统的 CPU 架构是 ARM 64 位架构(ARMv8-a),表明本机无法使用传统的 x86 架构的软件,所以建议不安装Anaconda,而是Miniconda。

1.2、下载Miniconda安装包

进入Miniconda下载官网:https://conda.io/en/latest/miniconda.html
可以看到Miniconda为我们提供了多种配置的安装包,包括Windows、macOS的x86,M1芯片,Linux的aarch64、ppc64le、s390x等多种架构
在这里插入图片描述
根据机器的架构,点击对应的安装包进行下载,下载后是一个Miniconda3-latest-Linux-aarch64.sh文件,放置到服务器上。

1.3、安装Miniconda

cd到对应目录,bash启动刚刚的sh文件,这里使用终端输入:bash Miniconda3-latest-Linux-aarch64.sh
在这里插入图片描述
进入安装程序后,会返回用户协议,一直enter到最后,输入yes同意协议:
在这里插入图片描述
然后会弹出一个询问您是否希望更新您的shell配置文件(例如.bashrc或.zshrc),以便在启动时自动激活Conda环境,并在激活时更改命令提示符
在这里插入图片描述
如果您选择“yes”,则Conda将被初始化为在每次启动时都自动激活基础环境(默认情况下为“base”环境),并且在激活时会显示Conda环境的名称。
如果您选择“no”,则不会在启动时自动激活基础环境,您可以在需要时手动使用conda activate 激活环境。

这里可以随意选择,我这里选择yes,然后应该就安装成功了!

【重要】:安装成功后,需要重启终端,重新进入才能正式使用conda,验证conda是否安装成功可以使用conda --version命令,输出版本号即为成功:

在这里插入图片描述

二、离线配置Conda环境

2.1、查看本机配置

输出nvida-smi查看本机CUDA版本这里是12.3
在这里插入图片描述
所以必须要找一个基本架构类似的新机器安装ARM和CUDA12.3下的环境;
要注意的是,ARM架构下的PyTorch安装比较麻烦。可以参考这篇:国产arm架构安装pytorch一次踩坑记录

安装好后对虚拟环境使用进行conda-pack 进行conda 环境打包,打包流程可以看:解决方案:查看机器配置+如何迁移虚拟环境到离线机器

2.2、迁移虚拟环境

打包好后会得到一个 xx.tar.gz的文件,将该.tar.gz压缩包通过mobaxterm或者其他方式把 xx.tar.gz上传到目标服务器的miniconda里的envs/环境名目录里面,一般路径为用户名/miniconda3/envs/自己新建的环境名
在这里插入图片描述
在这里插入图片描述

上传成功后,在目标服务器(离线的那个)上解压压缩包:tar -xzf xx.tar.gz,解压成功后,在目标服务器上查看虚拟环境:conda info --envs,显示如下,即表示迁移成功了。
在这里插入图片描述

2.3、可能遇见的报错

在跑程序的时候如果出现:cannot execute binary file: Exec format error这种错误,说明你正在尝试运行一个不同体系结构的可执行文件,或者文件本身可能已经损坏。极有可能的问题原因就是:你正在ARM架构下运行x86架构的编译!
在这里插入图片描述

这说明你的虚拟环境还是不太对,所有环境一定要是ARM架构下的才行,特别是PyTorch系列产品,要安装对应架构的才能避免这个报错。

最后

💖 个人简介:人工智能领域研究生,目前主攻文本生成图像(text to image)方向

📝 个人主页:中杯可乐多加冰

🔥 限时免费订阅:文本生成图像T2I专栏

🎉 支持我:点赞👍+收藏⭐️+留言📝

另外,我们已经建立了微信T2I学习交流群,如果你也是T2I方面的爱好者或研究者可以私信我加入。

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

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

相关文章

实战演练 | 在 Navicat 中格式化日期和时间

Navicat 支持团队收到来自用户常问的一个问题是,如何将网格和表单视图中的日期和时间进行格式化。其实这个很简单。今天,我们将介绍在 Navicat Premium 中进行全局修改日期和时间格式的步骤。 如果你想边学边用,欢迎点击 这里 下载免费全功能…

四十三、Redis基础

目录 一、认识NoSql 1、定义: 2、常见语法 3、与关系型数据库(SQL)的区别: 二、认识Redis 1、定义: 2、特征: 3、Key的结构: 三、安装Redis 四、Redis常见命令 1、数据结构介绍 2、…

孜然地址引导页V9(带后台)

刚刚在浏览之前经常访问的网站的时候我发现他不用那个域名了,然后我见这个页面好看,就把他干下来了,然后把给他写了个后台。另外如果你的子页面收录多的话,人家百度访问你的子页面会显示404的,所以为了流量可观安装这个…

改进的A*算法的路径规划(1)

引言 近年来,随着智能时代的到来,路径规划技术飞快发展,已经形成了一套较为 成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A*算法、D*算法、Field D* 算法等,然而传统的路径规划算法在复杂的场景的表现并不如人意&#xff…

项目二 创建与操作学生管理数据库

项目二 创建与操作学生管理数据库 #目标 创建库;查看库;操作库;图形工具操作库1,创建学生管理数据库 #创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collat…

开发猿的平平淡淡周末---2023/12/10

天气阴 温度适宜17摄氏度 AM 昨晚竟然下小雨了,还好还好,昨天刷的两个背包基本干了 一觉睡到日三竿,谁是神仙,我是神仙(哈哈哈哈哈哈) 刷会儿视频 补充下起床的动力 洗漱,恰饭,肝…

springboot基础(80):redis geospatial的应用

文章目录 前言redis geospatial如何从地图上获取经纬度springboot 的相关方法调用准备redis服务器引用的依赖预设位置的keyGEOADD 添加位置GEORADIUS 获取指定经纬度附件的停车场(deprecated)GEORADIUS 获取指定成员附件的停车场(deprecated&…

[LeetCode]-283. 移动零-1089. 复写零

目录 283. 移动零 描述 解析 代码 1089. 复写零 描述 解析 代码 283. 移动零 283. 移动零https://leetcode.cn/problems/move-zeroes/ 描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 &…

【安卓12源码】WMS系列:addWindow 和 removeWindow流程

一、Window 的属性 Window的属性定义在WindowManager的内部类LayoutParams中,了解Window的属性能够更好的理解WMS的内部原理。Window的属性有很多种,与应用开发最密切的有三种,它们分别是Type(Window的类型)、Flag(Window的标志)和SoftInputM…

【蜗牛到家】获南明电子信息产业引导基金战略投资

智慧社区生活服务平台「蜗牛到家」已于近期获得贵阳南明电子信息产业引导基金、华科明德战略投资。 贵阳南明电子信息产业引导基金属于政府旗下产业引导基金,贵州华科明德基金管理有限公司擅长电子信息产业、高科技产业、城市建设及民生保障领域的投资,双…

【EI会议征稿中】第三届信号处理与通信安全国际学术会议(ICSPCS 2024)

第三届信号处理与通信安全国际学术会议(ICSPCS 2024) 2024 3rd International Conference on Signal Processing and Communication Security 信号处理和通信安全是现代信息技术应用的重要领域,近年来这两个领域的研究相互交叉促进&#xf…

[每周一更]-(第76期):Go源码阅读与分析的方式

读源码可以深层理解Go的编写方式,理解作者们的思维方式;也有助于对Go语法用法深刻的理解,我们从这一篇说一下如何读源码,从哪些源码着手,从 简单到深入的方式学习源码; 学习源码也是一个修炼过程&#xff0…

【小白专用】Sql Server 连接Mysql 更新23.12.09

目标 已知mysql连接参数(地址和用户),期望通过Microsoft Sql Server Management Studio (以下简称MSSSMS)连接Mysql,在MSSSMS中直接查询或修改Mysql中的数据。 一般是选最新的版本下载。 选64位还是32位&a…

P13 Linux进程间通信——管道

前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🛸推荐专栏3: ​​​​​​《链表_C…

LeetCode二分查找:寻找旋转排序数组中的最小值

LeetCode二分查找:寻找旋转排序数组中的最小值 题目描述 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋…

Nginx【通俗易懂】《上篇》

目录 1.什么是Nginx💕💕💕 2.Nginx的基本目录💕💕💕 3.基本原理图 💕💕💕 4.Nginx配置 💕💕💕 5.日志的分析 💕&…

neuq-acm预备队训练week 8 P4779 【模板】单源最短路径(标准版)

题目背景 题目限制 题目描述 给定一个 n 个点,m 条有向边的带非负权图,请你计算从 s 出发,到每个点的距离。 数据保证你能从 s 出发到任意点。 输入格式 第一行为三个正整数n,m,s。 第二行起 m 行,每行三个非负整数 ui​,vi​…

Grounding DINO、TAG2TEXT、RAM、RAM++论文解读

提示:Grounding DINO、TAG2TEXT、RAM、RAM论文解读 文章目录 前言一、Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection1、摘要2、背景3、部分文献翻译4、贡献5、模型结构解读a.模型整体结构b.特征增强结构c.解码结构 6、实…

JAVAEE-8-线程池

池 我们之前也接触过,比如说常量池,数据库连接池,线程池,进程池,内存池等等, 池的共性: 1.提前把要用的对象准备好 2.把用完的对象也不要立即释放,先留着以备下次使用 来提高效率!!! 最开始,进程能够解决并发编程的问题,因为频繁创建销毁进程的开销成本太大了,所以我们引…

接口自动化测试框架的搭建

经过了一年多的接口测试工作,旧的框架也做了一些新的调整,删除了很多冗余的功能,只保留了最基本的接口结构验证、接口回归测试、线上定时巡检功能。 框架的演进 1.界面 UI 做了优化,整个框架的画风突然不一样了(人靠…