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

Apple M1运行Python应用报Symbol not found: _CFRelease错误

问题描述

运行Python应用导入google-cloud-secretmanager依赖时触发导入错误,完整报错栈如下:

Traceback (most recent call last):
  File "/Users/enchant3dmango/Documents/GitHub/nexus/automation-api/app/main.py", line 4, in <module>
    from configurations import config  # noqa # pylint: disable=unused-import
  File "/Users/enchant3dmango/Documents/GitHub/nexus/automation-api/app/configurations/config.py", line 7, in <module>
    from google.cloud import secretmanager
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/google/cloud/secretmanager.py", line 20, in <module>
    from google.cloud.secretmanager_v1 import SecretManagerServiceClient
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/google/cloud/secretmanager_v1/__init__.py", line 24, in <module>
    from google.cloud.secretmanager_v1.gapic import secret_manager_service_client
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/google/cloud/secretmanager_v1/gapic/secret_manager_service_client.py", line 25, in <module>
    import google.api_core.gapic_v1.client_info
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/google/api_core/gapic_v1/__init__.py", line 18, in <module>
    from google.api_core.gapic_v1 import config
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/google/api_core/gapic_v1/config.py", line 23, in <module>
    import grpc
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/__init__.py", line 22, in <module>
    from grpc import _compression
  File "/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_compression.py", line 15, in <module>
    from grpc._cython import cygrpc
ImportError: dlopen(/Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so, 2): Symbol not found: _CFRelease
  Referenced from: /Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so
  Expected in: flat namespace
 in /Users/enchant3dmango/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so
运行环境
  • 设备:Apple M1芯片Mac
  • 环境管理:Conda虚拟环境
  • 核心组件版本:
    python 3.9.12
    pip 21.2.4
    setuptools 62.4.0
    
问题根因

当前环境安装的grpcio二进制包与M1芯片arm64架构不匹配,二进制文件未正确链接macOS CoreFoundation系统框架,动态加载时找不到_CFRelease系统符号,触发导入错误。
常见触发场景:

  • 混用conda、pip源安装依赖时,拉取了为x86_64架构编译的旧版grpcio包
  • 终端开启Rosetta转译,导致安装的包架构与原生系统环境冲突
  • 安装的grpcio版本低于1.43.0,无适配Apple Silicon的正式预编译包
解决步骤

按顺序执行以下操作修复:

  1. 校验终端运行架构:终端执行arch,若输出为i386说明开启了Rosetta转译,需关闭终端的Rosetta运行属性,重启终端后重新激活conda环境,确认输出为arm64再执行后续步骤。
  2. 卸载当前环境内损坏的grpc相关包:
    pip uninstall -y grpcio grpcio-tools
    
  3. 通过conda-forge源安装适配arm64架构的grpcio稳定版,避免pip拉取架构不匹配的预编译包:
    conda install -c conda-forge grpcio=1.46.3 grpcio-tools -y
    
  4. 重新安装项目依赖的google-cloud-secret-manager包:
    pip install google-cloud-secret-manager
    
  5. 若上述步骤执行后仍报错,执行以下命令从源码编译适配当前环境的grpcio:
    export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
    export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
    pip install grpcio --no-binary grpcio --force-reinstall
    

内容的提问来源于stack exchange,提问作者enchant3dmango

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:15:37