You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:21:30