虚拟机Ubuntu22.04中pip安装TensorFlow后导入报Illegal instruction错误求助
TensorFlow导入报"Illegal instruction (core dumped)"的解决建议
卸载现有TensorFlow,从源码编译适配虚拟机CPU版本
虚拟机CPU通常会屏蔽部分高级指令集(比如AVX2),官方预编译的TensorFlow包依赖这些指令集导致报错,源码编译可以针对性优化:- 卸载当前包:
pip3 uninstall -y tensorflow - 安装编译依赖:
sudo apt-get install build-essential python3-dev python3-pip python3-venv git - 克隆TensorFlow源码并切换到稳定分支:
git clone https://github.com/tensorflow/tensorflow.git && cd tensorflow && git checkout r2.15 - 运行配置脚本,禁用不支持的指令集:
./configure(过程中选择不使用CUDA,CPU优化选项里关闭AVX2、FMA等虚拟机不支持的指令) - 编译并生成pip包:
bazel build --config=opt --copt=-march=native //tensorflow/tools/pip_package:build_pip_package - 安装编译好的包:
pip3 install /tmp/tensorflow_pkg/tensorflow-*.whl
- 卸载当前包:
安装兼容旧CPU的预编译TensorFlow版本
部分低版本TensorFlow没有强制依赖高级指令集,或者社区提供了无AVX优化的预编译包:- 卸载现有包:
pip3 uninstall -y tensorflow - 安装指定兼容版本(适配Python3.8的2.10版本为例):
pip3 install tensorflow==2.10.0 --no-cache-dir - 若上述版本仍报错,可寻找第三方编译的无AVX指令集依赖的TensorFlow wheel包,直接用pip安装
- 卸载现有包:
调整虚拟机CPU配置,启用指令集支持
打开虚拟机管理工具(VMware/VirtualBox等)的设置面板,找到CPU选项:- 启用硬件虚拟化(Intel VT-x/EPT或AMD-V/RVI)
- 勾选开启AVX、AVX2等宿主机CPU支持的指令集
- 重启虚拟机后,重新安装TensorFlow测试
解决conda环境与pip的冲突
当前使用的是conda-forge提供的Python环境,pip安装的TensorFlow可能与conda依赖库冲突:- 卸载pip安装的TensorFlow:
pip3 uninstall -y tensorflow - 用conda指令安装适配环境的TensorFlow:
conda install -c conda-forge tensorflow
- 卸载pip安装的TensorFlow:
内容的提问来源于stack exchange,提问作者Bekaso
相关产品推荐
相关产品推荐

