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

geo*_*gev 13 python python-3.x tensorflow macos-big-sur apple-silicon

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

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

这些是我的安装步骤:

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

我正在使用 Python 3.8.2。

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

小智 37

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

步骤 1 使用 pyenv install python version 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
Run Code Online (Sandbox Code Playgroud)

步骤2 通过安装virtualenvpip install virtualenv

步骤2.1 通过运行创建虚拟环境virtualenv ENV

步骤 2.2 通过运行激活该虚拟环境source ENV/bin/activate

tensorflow-2.4.1-py3-none-any.whl步骤 3 安装位于此公共谷歌驱动器链接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
>>>
Run Code Online (Sandbox Code Playgroud)

如果没有“zsh非法硬件指令”错误,你应该可以开始了。

注意:如果你使用的是 anaconda,上面的方法也可以工作。您可以跳过虚拟环境步骤(假设您有通过 Conda 激活的虚拟环境),直接进入pip install上述步骤(步骤 3 及后续步骤)。

  • 对网络意识表示歉意,但是如何验证通过谷歌驱动器提供轮子文件的维护者的从属关系/身份? (12认同)
  • 您可以使用以下 pip install 命令为 M1 机器安装 TensorFlow: pip install tensorflow-macos (3认同)

ded*_*ede 8

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
Run Code Online (Sandbox Code Playgroud)

在这里,指定使用哪一个非常重要。您可以通过安装如下脚本来完成此操作:

arch -arm64 bash install_venv.sh my_tf_env
Run Code Online (Sandbox Code Playgroud)

如果您安装了多个 python,请使用:

arch -arm64 bash install_venv.sh --python=/usr/bin/python3 my_tf_env
Run Code Online (Sandbox Code Playgroud)

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

  • 恕我直言,您的评论根本没有为对话添加任何有用的内容。 (9认同)
  • 当我运行 `$ file $(which python3)` 时,我只得到一个选项: `/opt/homebrew/Caskroom/miniconda/base/envs/svc-pdf-reader/bin/python3: Mach-O 64-bitexecutable x86_64 ` 这可能是与自制程序相关的问题吗? (3认同)

Kau*_*k J 7

我遇到过同样的问题

\n

这是因为M1芯片。现在有一个预发布版本,可为 macOS 11.0+ 提供硬件加速的 TensorFlow 和 TensorFlow Addons。M1 Mac 和基于 Intel 的 Mac 通过 Apple\xe2\x80\x99s ML 计算框架支持本机硬件加速。

\n

您需要安装支持 M1 芯片的 TensorFlow\n只需拉取此TensorFlow Macos 存储库并运行 ./scripts/download_and_install.sh

\n

  • 错误:具有 ML 计算加速功能的 TensorFlow 仅适用于 macOS 11.0 及更高版本。 (3认同)