M1 MacBook Pro导入dlib报错:_png_do_expand_palette_rgb8_neon符号未找到
解决M1 MacBook Pro上VSCode导入dlib时的
_png_do_expand_palette_rgb8_neon符号缺失错误 这个错误源于dlib编译时链接的libpng版本与M1架构不兼容,以下是几个针对性的解决方案:
方案1:手动指定libpng路径编译dlib
- 清理现有冲突依赖:
pip uninstall -y dlib brew uninstall libpng - 用Homebrew重新安装适配arm64的libpng:
brew install libpng - 配置环境变量,让pip编译dlib时定位到正确的libpng:
export CPATH=/opt/homebrew/include export LIBRARY_PATH=/opt/homebrew/lib pip install dlib --no-binary :all:
方案2:使用conda环境适配M1架构
conda-forge提供了预编译的arm64版本dlib,无需手动编译:
- 创建并激活新conda环境:
conda create -n dlib_env python=3.9 conda activate dlib_env - 安装适配的dlib:
conda install -c conda-forge dlib - 在VSCode左下角状态栏切换解释器到这个conda环境
方案3:确保VSCode终端以arm64架构运行
若VSCode通过Rosetta启动,终端可能默认用x86_64架构,导致依赖安装不兼容:
- 打开VSCode设置(快捷键
Cmd+,),搜索terminal.integrated.profiles.osx - 修改默认终端配置,添加arm64架构前缀(以zsh为例):
"terminal.integrated.profiles.osx": { "zsh (arm64)": { "path": "/bin/zsh", "args": ["-l", "-c", "arch -arm64 zsh"] } }, "terminal.integrated.defaultProfile.osx": "zsh (arm64)" - 重启VSCode终端,重新安装dlib:
pip uninstall -y dlib pip install dlib
额外注意事项
- 确认VSCode是原生arm64版本:打开苹果菜单→关于本机→系统报告→应用程序,查看VSCode的“架构”是否为
ARM64,若为x86_64,请卸载后从官网重新下载arm64版本 - 避免混用架构:如果之前安装的是x86_64版本Python,建议卸载后从python.org下载arm64版本重新安装
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

