Apple M1 - 运行 Python 应用程序时未找到符号:_CFRelease

enc*_*ngo 15 python python-3.x conda grpc-python apple-m1

我希望运行我的应用程序没有任何问题,但我收到了此附加错误。有人可以帮助我或指出我正确的方向来解释为什么会发生这种情况吗?

Traceback (most recent call last):
  File "/Users/andre.sitorus/Documents/GitHub/nexus/automation-api/app/main.py", line 4, in <module>
    from configurations import config  # noqa # pylint: disable=unused-import
  File "/Users/andre.sitorus/Documents/GitHub/nexus/automation-api/app/configurations/config.py", line 7, in <module>
    from google.cloud import secretmanager
  File "/Users/andre.sitorus/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/andre.sitorus/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/andre.sitorus/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/andre.sitorus/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/andre.sitorus/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/google/api_core/gapic_v1/config.py", line 23, in <module>
    import grpc
  File "/Users/andre.sitorus/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/__init__.py", line 22, in <module>
    from grpc import _compression
  File "/Users/andre.sitorus/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_compression.py", line 15, in <module>
    from grpc._cython import cygrpc
ImportError: dlopen(/Users/andre.sitorus/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so, 2): Symbol not found: _CFRelease
  Referenced from: /Users/andre.sitorus/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so
  Expected in: flat namespace
 in /Users/andre.sitorus/opt/miniconda3/envs/nexus/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so
Run Code Online (Sandbox Code Playgroud)

我在 Apple M1 中运行这个。

在使用 . 在我的虚拟环境中安装所有要求之前,我已经升级了 pip 和 setuptools conda。这是我的pythonpipsetuptools版本:

python 3.9.12
pip 21.2.4
setuptools 62.4.0
Run Code Online (Sandbox Code Playgroud)

Cyg*_*ger 36

有同样的问题;原来这是因为 grpcio 构建。这样做有帮助:

pip uninstall grpcio
conda install grpcio
Run Code Online (Sandbox Code Playgroud)

(确保您将 conda-forge 通道与 conda 一起使用;社区致力于确保软件包与 M1/arm64 兼容)


Kri*_*son 13

我能够通过grpcio从源代码重建来解决这个问题,如下所示:

pip uninstall grpcio
export GRPC_PYTHON_LDFLAGS=" -framework CoreFoundation"
pip install grpcio --no-binary :all:
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说比下面来自 @Cygorger (使用 conda)在 macos M1 上的其他效果更好 (2认同)