导入tensorflow_text时遇ImportError: dlopen符号未找到问题求助
问题:导入tensorflow_text触发ImportError(符号未找到)
环境配置
- Python版本:3.11
- tensorflow:2.12.0
- tensorflow-text:2.12.0
- numpy:1.23.5
错误详情
在Jupyter中执行import tensorflow_text as tf_text时,出现以下错误:
ImportError Traceback (most recent call last) Cell In[2], line 1 ----> 1 import tensorflow_text as tf_text File ~/pythonenv/lib/python3.11/site-packages/tensorflow_text/__init__.py:20 17 from tensorflow.python.util.all_util import remove_undocumented 19 # pylint: disable=wildcard-import ---> 20 from tensorflow_text.core.pybinds import tflite_registrar 21 from tensorflow_text.python import keras 22 from tensorflow_text.python import metrics ImportError: dlopen(/Users/s0m0ifd/pythonenv/lib/python3.11/site-packages/tensorflow_text/core/pybinds/tflite_registrar.so, 0x0002): Symbol not found: (__ZN4absl12lts_2022062320raw_logging_internal21internal_log_functionE) Referenced from: '/Users/s0m0ifd/pythonenv/lib/python3.11/site-packages/tensorflow_text/core/pybinds/tflite_registrar.so' Expected in: '/Users/s0m0ifd/pythonenv/lib/python3.11/site-packages/tensorflow/libtensorflow_framework.2.dylib'
已尝试重新安装tensorflow和tensorflow-text,问题仍存在,需解决导入问题。
解决方案
该错误源于tensorflow-text依赖的abseil库与tensorflow自带的abseil版本不兼容,导致动态库符号无法匹配。可按以下步骤尝试修复:
强制安装兼容版本的abseil-py
执行命令安装与tensorflow 2.12.0匹配的abseil版本:pip install --force-reinstall absl-py==1.4.0清理残留文件后重装核心库
彻底清除现有安装的残留文件,再重新安装指定版本:# 卸载现有包 pip uninstall -y tensorflow tensorflow-text absl-py # 删除site-packages中的残留文件夹 rm -rf ~/pythonenv/lib/python3.11/site-packages/tensorflow* rm -rf ~/pythonenv/lib/python3.11/site-packages/absl* # 重新安装指定版本 pip install tensorflow==2.12.0 tensorflow-text==2.12.0 numpy==1.23.5切换到conda环境(针对macOS venv兼容性问题)
macOS的虚拟环境有时会出现动态库依赖冲突,使用conda环境可更好处理这类问题:# 创建并激活conda环境 conda create -n tf_env python=3.11 -y conda activate tf_env # 安装指定版本的依赖 conda install tensorflow=2.12.0 tensorflow-text=2.12.0 numpy=1.23.5 -y验证修复结果
重启Jupyter内核后,执行以下代码验证:import tensorflow as tf import tensorflow_text as tf_text print("TensorFlow版本:", tf.__version__) print("TensorFlow Text版本:", tf_text.__version__)
内容的提问来源于stack exchange,提问作者Sindhu Mohana
相关产品推荐
相关产品推荐

