M1 macOS报libpng16.16.dylib加载失败 架构不兼容brew操作无效
故障现象
在Anaconda的brainreg虚拟环境中运行reg_aladin程序时进程失败,dyld动态链接器抛出如下错误:
Process failed: dyld[29269]: Library not loaded: /usr/local/opt/libpng/lib/libpng16.16.dylib Referenced from: /Users/hanbing/opt/anaconda3/envs/brainreg/lib/python3.9/site-packages/brainreg/bin/nifty_reg/osX/reg_aladin Reason: tried: '/usr/local/opt/libpng/lib/libpng16.16.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libpng16.16.dylib' (no such file), '/usr/lib/libpng16.16.dylib' (no such file), '/opt/homebrew/Cellar/libpng/1.6.37/lib/libpng16.16.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libpng16.16.dylib' (no such file), '/usr/lib/libpng16.16.dylib' (no such file)
已尝试执行brew install libpng、brew update、brew upgrade libpng命令,均无法解决问题。
故障根因
系统动态链接器检索到的所有libpng16.16.dylib库均为arm64架构,但目标程序reg_aladin为x86_64架构编译版本,依赖x86_64版本的libpng库,其余默认检索路径下无匹配架构的库文件。
涉及运行环境信息:
- 操作系统:搭载M1 CPU的macOS
- 系统版本:12.0.1
- 硬件配置:内置1TB闪存,外接2TB USB移动硬盘
- Python版本:3.9
解决方案
方案1:通过Rosetta2运行x86_64终端环境(推荐,兼容性最优)
- 打开访达,进入「应用程序-实用工具」目录,右键点击「终端」选择「显示简介」,勾选使用Rosetta打开,重启终端
- 重启后终端自动运行在x86_64转译模式,执行
arch命令返回i386即确认模式正确 - 在该终端中重新安装x86_64版本的Anaconda/Miniconda,或新建conda虚拟环境后重新安装brainreg及全部依赖。该模式下执行brew安装命令会默认部署x86_64版本的依赖库,自动匹配
reg_aladin的架构要求,不会出现架构不兼容问题。
方案2:手动安装x86_64版本libpng并指定动态库路径
- 执行如下命令,通过Rosetta调用x86版本Homebrew安装对应架构的libpng:
arch -x86_64 /usr/local/bin/brew install libpng
若此前未安装x86版本Homebrew,需先完成x86架构Homebrew的部署,x86版本Homebrew默认安装路径为
/usr/local/bin/brew,原生arm版本Homebrew默认路径为/opt/homebrew/bin/brew
- 激活
brainreg虚拟环境,执行如下命令将x86版本libpng的路径加入动态库检索优先级:export DYLD_LIBRARY_PATH=/usr/local/opt/libpng/lib:$DYLD_LIBRARY_PATH - 直接运行
reg_aladin验证功能。如需长期生效,可将上述export命令写入虚拟环境激活脚本~/opt/anaconda3/envs/brainreg/etc/conda/activate.d/env_vars.sh,每次激活环境时会自动完成路径配置。
方案3:conda环境内安装匹配依赖
若当前conda环境运行在x86_64转译模式下,可直接在虚拟环境内安装libpng,让程序优先检索环境内的库文件,避免依赖系统全局库:
conda activate brainreg conda install -c conda-forge libpng
该方案不会修改系统全局配置,影响范围仅限当前虚拟环境。
内容的提问来源于stack exchange,提问作者Hanbing
相关产品推荐
相关产品推荐

