TensorFlow 2.15.0导入失败报错,求execstack安装方式或替代方案
获取execstack的方法
- Debian/Ubuntu系统:直接安装独立的
execstack包sudo apt update && sudo apt install execstack - RHEL/CentOS/Fedora系统:通过EPEL源安装
先启用EPEL源(以CentOS 8为例):
再安装execstack:sudo dnf install epel-releasesudo dnf install execstack - 源码编译获取:通过编译prelink项目提取execstack工具
git clone https://git.code.sf.net/p/prelink/prelink cd prelink ./autogen.sh ./configure make sudo cp src/execstack /usr/local/bin/
无需execstack的替代修复方法
- 修改共享库的栈权限
- 先定位
libtensorflow_framework.so.2的路径,可通过以下命令查找:
找到后路径类似python -c "import tensorflow as tf; print(tf.sysconfig.get_lib())"/path/to/tensorflow/libtensorflow_framework.so.2 - 使用
objcopy修改栈权限:objcopy --set-section-flags .note.GNU-stack="readonly,nounexec" /path/to/libtensorflow_framework.so.2
- 先定位
- 切换TensorFlow版本
尝试降级到2.14.0或升级到2.16.0,该问题可能在其他版本已修复:pip uninstall -y tensorflow pip install tensorflow==2.14.0 - 临时调整系统安全策略(仅测试用,不建议长期关闭)
如果是SELinux或AppArmor限制导致,可临时关闭后重试:# SELinux临时关闭 sudo setenforce 0 # AppArmor临时停止 sudo systemctl stop apparmor
内容的提问来源于stack exchange,提问作者ShannonTown
相关产品推荐
相关产品推荐

