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

b0zn9rqh  于 2023-04-13  发布在  Python
关注(0)|答案(3)|浏览(250)

此问题已在此处有答案

Why does loading tensorflow on Mac lead to "Process finished with exit code 132 (interrupted by signal 4: SIGILL)"?(6个回答)
1年前关闭。
这篇文章是编辑并提交审查4小时前.
我试图让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。

wljmcqd8

wljmcqd81#

在尝试了一堆解决方案都无济于事之后,这对我很有效。
步骤1使用pyenv安装python版本3.8.5并将其设置为默认python版本。本教程(https://realpython.com/intro-to-pyenv/)有助于正确配置pyenv。
Step 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轮,位于此公共Google Drive链接https://drive.google.com/drive/folders/1oSipZLnoeQB0Awz8U68KYeCPsULy_dQ7
步骤3.1假设您只是简单地安装了wheel以下载在激活的虚拟环境中运行pip install ~/Downloads/tensorflow-2.4.1-py3-none-any.whl
第4步输入python,这将在终端中打开>>>,然后输入

>>> import tensorflow
>>>

如果没有“zsh非法硬件指令”错误,您应该可以正常运行。
注意:如果你使用的是anaconda,上面的也可以。你可以跳过虚拟环境的步骤(假设你有一个通过Conda激活的虚拟环境),直接进入上面提到的pip install(第3步及以后的步骤)。

jhkqcmku

jhkqcmku2#

Python3在M1中有两个架构。

$ 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替换为您选择的任何其他名称/路径。

tkclm6bt

tkclm6bt3#

我也有同样的问题
这是因为M1芯片。现在有一个预发布版本,为macOS 11.0+提供硬件加速的TensorFlow和TensorFlow Addons。通过Apple的ML Compute框架,M1 Mac和基于Intel的Mac支持原生硬件加速。
您需要安装支持M1芯片的TensorFlow只需拉取此tensorflow macos repository并运行./scripts/download_and_install. sh

相关问题