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

use*_*622 14 python pip undefined-symbol conda tensorflow

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

我跑了pip install tensorflow-io==0.14.0

当我尝试

import tensorflow-io as tfio
Run Code Online (Sandbox Code Playgroud)

我收到错误:

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']
Run Code Online (Sandbox Code Playgroud)

有什么问题以及如何解决它?

vcu*_*ucu 9

正如 @Smedegaard 提到的,tensorflow_io 不在 conda forge 上。vlasenkoalexey 在 Github issues 上的回答解决了这个问题:

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

  • 这为我解决了这个问题 (2认同)
  • 为什么这有效? (2认同)

Sme*_*ard 0

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

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

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