首先,我建议你检查你的操作系统是否兼容64位的Miniconda3版本。如果你的操作系统是32位的,那么你需要下载适用于32位系统的Miniconda3版本
树莓派是aarch64(64位ARM架构),操作系统是32位的,在装Miniconda3遇到这个错误Miniconda3-py37_4.9.2-Linux-aarch64.sh: line 398: /root/miniconda3/conda.exe: No such file or directory
根据描述的错误信息,在aarch64架构的树莓派上安装Miniconda3时报错找不到conda.exe文件,这很有可能是由于操作系统和Miniconda不匹配导致的。
主要原因在于:
-
你的树莓派CPU架构是64位的aarch64
-
但操作系统仍旧是32位的
-
而你安装的Miniconda3版本是Linux-aarch64,即64位版本
所以就出现了操作系统找不到Miniconda安装包中预期的64位可执行文件conda.exe的问题。
要解决这个问题,需要选择与你的操作系统匹配的Miniconda版本,具体方法是:
-
确认你的树莓派系统是32位还是64位,使用
getconf LONG_BIT
命令查看,使用uname -a查看树莓派内核信息。
niu@raspberrypi:~ $ getconf LONG_BIT 32 niu@raspberrypi:~ $ uname -a Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
32代表操作系统是32位,aarch64代表
64位ARM版本。
-
如果是32位系统,应该安装Miniconda3-py37_x.x.x-Linux-armv7l.sh,注意armv7l表示32位ARM版本。
-
下载正确的版本后再次尝试安装
-
安装完成后验证conda命令能否正常使用
这样就可以解决不匹配的操作系统位数导致的安装错误。
补充:
树莓派的CPU本身支持64位指令集,这从它的名称“aarch64”就可以看出(64位ARM架构)。
但是树莓派上运行的操作系统可以选择是32位或者64位的。
这主要有以下几个原因:
- 向后兼容 - 许多早期的ARM板卡都是32位系统,为了兼容旧软件和外设,树莓派提供32位系统选项。
- 内存限制 - 树莓派早期型号内存较小,32位系统对内存需求较少。
- 系统开销 - 64位系统相比32位会有更高的内存开销,对于资源受限的设备来说32位系统更省资源。
- 软件生态 - 一些 third-party 软件和库只提供32位版本,为了易用性树莓派将其作为默认选项。
- 系统稳定性 - 32位系统相比64位,存在时间更长,会更加稳定可靠。
综上所述,尽管CPU本身支持64位,出于兼容性、资源限制和生态多样性的考虑,树莓派可以选择运行32位操作系统。但对于资源充足的应用,运行64位系统同样可以发挥硬件全部性能。这种设计提供了更好的平衡。
我来总结一下不同架构和位宽对应的缩写:
ARM架构:
- armv7l - 32位ARM版本
- aarch64 - 64位ARM版本
x86架构:
- i386,i686 - 32位x86版本
- x86_64 - 64位x86版本