在 Apple M1 上,grpc/Google-Api 导入错误:

Gab*_*don 6 python google-api arm64 grpc apple-m1

情况:

我正在尝试设置 SQLAlchemy 数据库并在本地运行它。我使用 google api 作为其视觉模块,这样我就可以分析图片中的文本。

目前,我不得不从旧的 2013 年 MacBook 切换到配备 m1 芯片的新 2020 年 MacBook。我尝试运行本地环境,但收到以下错误。

错误:

File "/Users/gabriel/Desktop/PROJECT_NAME/src/main.py", line 3, in <module>
    import actions
  File "/Users/gabriel/Desktop/PROJECT_NAME/src/actions.py", line 3, in <module>
    import utils
  File "/Users/gabriel/Desktop/PROJECT_NAME/src/utils.py", line 5, in <module>
    import google.cloud.vision_v1 as vision
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/google/cloud/vision_v1/__init__.py", line 20, in <module>
    from .services.image_annotator import ImageAnnotatorClient as IacImageAnnotatorClient
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/google/cloud/vision_v1/services/image_annotator/__init__.py", line 16, in <module>
    from .client import ImageAnnotatorClient
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/google/cloud/vision_v1/services/image_annotator/client.py", line 25, in <module>
    from google.api_core import gapic_v1  # type: ignore
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/google/api_core/gapic_v1/__init__.py", line 16, in <module>
    from google.api_core.gapic_v1 import config
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/google/api_core/gapic_v1/config.py", line 23, in <module>
    import grpc
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/grpc/__init__.py", line 22, in <module>
    from grpc import _compression
  File "/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/grpc/_compression.py", line 15, in <module>
    from grpc._cython import cygrpc
ImportError: dlopen(/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/grpc/_cython/cygrpc.cpython-310-darwin.so, 0x0002): tried: '/Users/gabriel/.local/share/virtualenvs/PROJECT_NAME/lib/python3.10/site-packages/grpc/_cython/cygrpc.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/cygrpc.cpython-310-darwin.so' (no such file)
Run Code Online (Sandbox Code Playgroud)

假设:

我相信这确实与尝试在我的依赖项中获取通用二进制版本有关,但此时,我不知道如何正确链接它们,或者我是否拥有正确的包。

眼镜:

  • 操作系统:Mac OS Monterey 12.0.1 (21A559)

  • 电脑:MacBook Pro(13 英寸,M1,2020 年)

  • IDE:VSCode

依赖项:

  • Python:“3.10.0”

  • grpcio:“1.41.1”

  • sqlalchemy:“1.4.26”

尝试过的解决方案:

  • 在没有 grpcio 依赖的情况下运行,有效。

  • 本来在两台非m1芯片的macbook上跑数据库,没有出现这个错误。

  • 卸载并重新安装 grpcio,没有缓存。

  • 删除我的本地环境并重新创建它

小智 7

从 shell 中(或从虚拟环境中)运行以下命令

pip install --no-binary :all: grpcio --ignore-installed
pip install --no-binary :all: grpcio-tools --ignore-installed
Run Code Online (Sandbox Code Playgroud)

您可以从此处针对Github 问题发表的评论中找到更多信息