无法在 13 英寸 m1 MacBook Pro 上运行 python 包 AIBenchmark

问题描述

我得到了一个新的 m1 MacBook Pro 并安装了 Apple 提供的 TensorFlow 2,我决定对 MacBook 做一些测试,所以我安装了 python3 包“AIBenchmark”,过程成功,没有任何错误消息。但是,当我导入它时,出现了以下错误消息。

Traceback (most recent call last): 
File "<stdin>",line 1,in <module> 
File "/Users/andrew/tensorflow_macos_venv/lib/python3.8/site-packages/ai_benchmark/__init__.py",line 5,in <module>
    from ai_benchmark.utils import *
File "/Users/andrew/tensorflow_macos_venv/lib/python3.8/site-packages/ai_benchmark/utils.py",line 10,in <module>
    from PIL import Image
File "/Users/andrew/tensorflow_macos_venv/lib/python3.8/site-packages/PIL/Image.py",line 94,in <module>
    from . import _imaging as core ImportError: dlopen(/Users/andrew/tensorflow_macos_venv/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so,2): no suitable image found.  Did find:
  /Users/andrew/tensorflow_macos_venv/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so:
mach-o,but wrong architecture
  /Users/andrew/tensorflow_macos_venv/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so:
mach-o,but wrong architecture 

我该如何解决这个问题?

解决方法

我猜是因为 AI Benchmark 自 2019 年 12 月 18 日起未更新,因此该库是 Intel 架构二进制文件。我不知道通过 Xcode 命令行工具安装 python 3.8 的细节,但我想它是一个通用的二进制文件(英特尔和苹果 Arm64 架构)。我的猜测是您必须将 TensorFlow 作为 Intel 二进制文件运行,因此我会在终端中尝试以下操作:在您的命令之前使用

启动您的应用程序

arch -x86_64

或者,将终端配置为在 Rosetta2 下运行。

  1. 在 Finder 中右键单击“终端”
  2. 获取信息
  3. 用 Rosetta 打开

更多建议here(不,这与 python 或 TensorFlow 无关,但是是的,它是相关的)。