由于未定义符号导致无法打开文件 libtensorflow_io.so

问题描述

我在 Ubuntu 上使用 python 3.8.2 设置了 tensorflow 2.2 conda 环境。

我跑了pip install tensorflow-io==0.14.0

当我尝试

import tensorflow-io as tfio

我发现错误

File "/home/somedir/miniconda3/envs/env_name/lib/python3.8/site-packages/tensorflow_io/core/python/ops/__init__.py",line 65,in _load_library
raise NotImplementedError(

NotImplementedError: unable to open file: libtensorflow_io.so,from paths: ['/home/somedir/miniconda3/envs/env_name/lib/python3.8/site-packages/tensorflow_io/core/python/ops/libtensorflow_io.so']

caused by: ['/home/somedir/miniconda3/envs/env_name/lib/python3.8/site-packages/tensorflow_io/core/python/ops/libtensorflow_io.so undefined symbol:
_ZN10tensorflow0pKernel11TraceStringEPNS_150pKernelContextEb']

有什么问题,我该如何解决

解决方法

我在 Jupyter 实验室中遇到了同样的错误,在 conda 环境中运行。

看起来 tensorflow_io 还没有在 conda forge 上:https://github.com/tensorflow/io/issues/676

如果可能,您可以更改为常规 Python 环境。

,

正如@Smedegaard 所提到的,tensorflow_io 不在 conda forge 上。解决此问题的 answer of vlasenkoalexey on Github issues

明显的解决方法是卸载 tensorflow 和 tensorflow-io 并从 pip 安装它们:
pip 卸载 tensorflow
pip 卸载 tensorflow-io
pip 安装 tensorflow-gpu
pip install --no-deps tensorflow-io