在 macbook pro M1 上安装 Tensorflow 时出现“zsh:非法硬件指令 python”

问题描述

我正在尝试让 tensorflow 在我的 MacBook pro M1 上运行。但是,我在尝试导入时不断收到以下错误zsh: illegal hardware instruction python

我已通过此 link 下载并安装了 tensorflow。

这些是我的安装步骤:

  • 安装 venv:python3 -m venv venv
  • install_venv.sh(位于下载的文件夹中)文件拖到终端,在末尾添加 -p
  • 选择 venv 的目录作为应安装 tensorflow 的位置。
  • 激活venv。
  • 输入“python”。
  • 尝试导入 tensorflow:import tensorflow as tf

我使用的是 Python 3.8.2。

我看过一些教程,这种方法确实有效,所以我不知道这里有什么问题。

解决方法

Python3 在 M1 中带有 2 种架构。

$ file $(which python3)
# If you installed python through Homebrew or Anaconda,deactivate your conda env,then run this line instead:
# $ file $(which /usr/bin/python3)
/usr/bin/python3: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/usr/bin/python3 (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python3 (for architecture arm64e): Mach-O 64-bit executable arm64e

在这里,指定使用哪一个非常重要。您可以通过像这样安装脚本来做到这一点:

arch -arm64 bash install_venv.sh my_tf_env

如果你有多个 python 安装,使用:

arch -arm64 bash install_venv.sh --python=/usr/bin/python3 my_tf_env

您可以将 my_tf_env 替换为您选择的任何其他名称/路径。

,

我遇到了同样的问题

这是因为M1芯片。现在有一个预发布版,可为 macOS 11.0+ 提供硬件加速的 TensorFlow 和 TensorFlow 插件。 M1 Mac 和基于 Intel 的 Mac 通过 Apple 的 ML Compute 框架支持原生硬件加速。

需要安装支持M1芯片的TensorFlow 只需拉动这个 tensorflow macos repository 并运行 ./scripts/download_and_install.sh

,

在尝试了一系列解决方案无济于事后,这对我有用。

步骤 1 使用 pyenv 安装 python 版本 3.8.5 并将其设置为默认 python 版本。本教程(https://realpython.com/intro-to-pyenv/) 有助于 正确配置 pyenv。

步骤 1.1 如果您在 zsh 中运行 pyenv 时遇到问题,请使用此帖子 (https://github.com/pyenv/pyenv/issues/1446)。

步骤 1.2 一旦你运行了 python 版本 3.8.5,你可以通过运行 python -V 来检查它应该输出:

Python 3.8.5

步骤 2 通过 pip install virtualenv

安装 virtualenv

步骤 2.1 通过运行 virtualenv ENV

创建虚拟环境

步骤 2.2 通过运行 source ENV/bin/activate

激活该虚拟环境

第 3 步安装名为 tensorflow-2.4.1-py3-none-any.whl 的 tensorflow 轮,位于此公共谷歌驱动器链接 https://drive.google.com/drive/folders/1oSipZLnoeQB0Awz8U68KYeCPsULy_dQ7

步骤 3.1 假设您只是安装了轮子来下载运行 pip install ~/Downloads/tensorflow-2.4.1-py3-none-any.whl 在您激活的虚拟环境中

第 4 步输入 python,它会在您的终端中显示>>>并输入

>>> import tensorflow
>>>

如果没有“zsh 非法硬件指令”错误,您应该可以继续使用。

,

我找到了答案。似乎我的终端应用程序在 Rosetta 中运行。这可以通过右键单击应用程序 -> 获取信息 -> 禁用“使用 rosetta 打开”来更改。

,

我用谷歌搜索并找到了这个页面: https://discourse.brew.sh/t/almost-all-applications-crash-with-illegal-hardware-instruction-on-old-2009-macbook-pro/4089

我尝试卸载 vim,python@3.9 然后通过以下方式安装:

brew install --build-from-source vim

然后安装后,vim 和 python3 都可以工作。

试试吧,祝你好运。