TensorFlow导入报错:undefined symbol: _ZTIN6snappy4SinkE 求助
解决TensorFlow导入时的Snappy库未定义符号错误
问题背景
Ubuntu 22.04系统下,conda环境(Python 3.11)导入TensorFlow v2.15.0时出现以下错误:
ImportError: /home/gimhara/anaconda3/envs/tf-env/lib/python3.11/site-packages/tensorflow/python/platform/../../libtensorflow_framework.so.2: undefined symbol: _ZTIN6snappy4SinkE
该错误源于TensorFlow依赖的Snappy压缩库版本不兼容或环境未正确链接到适配的库,常规重装TensorFlow、安装系统级libsnappy-dev无法解决。
解决方案
1. 在conda环境内安装适配的Snappy库
系统级的Snappy库可能与conda环境内的TensorFlow不兼容,直接在环境内安装conda维护的版本:
conda activate tf-env conda install -c conda-forge snappy
2. 强制conda环境优先使用内部库
设置环境变量,让动态链接器优先查找conda环境内的库文件,避免调用系统库:
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
若要永久生效,将命令添加到环境激活脚本:
echo 'export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
3. 用conda重新安装匹配版本的TensorFlow
避免pip与conda的依赖冲突,彻底卸载后用conda-forge安装:
# 卸载现有TensorFlow pip uninstall tensorflow -y conda uninstall tensorflow -y # 安装指定版本 conda install -c conda-forge tensorflow=2.15.0 python=3.11
4. 验证修复
激活环境后运行测试:
import tensorflow as tf print(tf.__version__)
备选方案:创建全新conda环境
若旧环境存在依赖污染,直接创建干净环境:
conda create -n new-tf-env python=3.11 conda activate new-tf-env conda install -c conda-forge tensorflow=2.15.0 snappy
内容的提问来源于stack exchange,提问作者Kushan Manahara
相关产品推荐
相关产品推荐

