我使用的是带有m1处理器的macbook pro,macos版本11.0.1,pycharm中的python 3.8,tensorflow版本2.4.0rc4(也尝试了2.3.0、2.3.1、2.4.0rc0)。我正在尝试运行以下代码:
import tensorflow
这将导致错误消息:
Process finished with exit code 132 (interrupted by signal 4: SIGILL)
代码在我的windows和linux机器上运行良好。错误消息的含义是什么?我如何修复它?
1条答案
按热度按时间pbossiut1#
似乎当您安装了多个python解释器时,就会出现这个问题,其中一些解释器是针对不同的体系结构(x86_64与arm64)。您需要确保使用了正确的python解释器,如果您安装了apple版本的tensorflow,那么可能需要一个arm64解释器。
如果使用rosetta(苹果的x86_64仿真器),则需要使用x86_64 python解释器,如果以某种方式加载arm64 python解释器,则会出现非法指令错误(这完全有道理)。
如果您使用任何安装新python解释器的脚本,那么您需要确保为该体系结构安装了正确的解释器(很可能是arm64)。
总的来说,我认为出现这个问题是因为python环境设置不是为可以运行多个指令集/体系结构的系统设计的,
pip
确实检查了包和主机系统的体系结构,但似乎可以运行x86_64解释器来加载用于arm64的包,这就产生了问题。作为参考,本文件中存在一个问题
tensorflow_macos
人们可以检查。