在同一 python 文件中从 pycoral 导入 tensorflow 和 make_interpreter 时,会出现以下错误:
import tensorflow
from pycoral.utils.edgetpu import make_interpreter
-->
Traceback (most recent call last):
File "/home/joran/tflite/examples/lite/examples/object_detection/raspberry_pi/conflict.py", line 2, in <module>
from pycoral.utils.edgetpu import make_interpreter
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/pycoral/utils/edgetpu.py", line 32, in <module>
import tflite_runtime.interpreter as tflite
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tflite_runtime/interpreter.py", line 41, in <module>
from tflite_runtime import _pywrap_tensorflow_interpreter_wrapper as _interpreter_wrapper
ImportError: generic_type: type "InterpreterWrapper" is already registered!
我使用 miniforge (conda) 作为虚拟环境在 Raspberry Pi 4 上运行它。 同样的程序在 Ubuntu 20.04 上运行良好。我已确保所有已安装的软件包都与 Ubuntu 版本相同。如果我更改导入顺序,则会出现以下错误:
from pycoral.utils.edgetpu import make_interpreter
import tensorflow
Traceback (most recent call last):
File "/home/joran/tflite/examples/lite/examples/object_detection/raspberry_pi/conflict.py", line 2, in <module>
import tensorflow as tf
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/__init__.py", line 51, in <module>
from ._api.v2 import compat
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/__init__.py", line 37, in <module>
from . import v1
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/v1/__init__.py", line 30, in <module>
from . import compat
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/v1/compat/__init__.py", line 37, in <module>
from . import v1
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/v1/compat/v1/__init__.py", line 47, in <module>
from tensorflow._api.v2.compat.v1 import lite
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/v1/lite/__init__.py", line 9, in <module>
from . import experimental
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/v1/lite/experimental/__init__.py", line 8, in <module>
from . import authoring
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/_api/v2/compat/v1/lite/experimental/authoring/__init__.py", line 8, in <module>
from tensorflow.lite.python.authoring.authoring import compatible
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/lite/python/authoring/authoring.py", line 44, in <module>
from tensorflow.lite.python import lite
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/lite/python/lite.py", line 49, in <module>
from tensorflow.lite.python.interpreter import Interpreter # pylint: disable=unused-import
File "/home/joran/.conda/envs/tf/lib/python3.9/site-packages/tensorflow/lite/python/interpreter.py", line 28, in <module>
from tensorflow.lite.python.interpreter_wrapper import _pywrap_tensorflow_interpreter_wrapper as _interpreter_wrapper
ImportError: generic_type: type "InterpreterWrapper" is already registered!
都导入_pywrap_tensorflow_interpreter_wrapper as _interpreter_wrapper,应该不限制范围吧
我已经尝试了其他几个 python 和 tensorflow 版本和环境。总是同样的错误。有什么办法解决这个问题吗?所以两者都可以无误地导入。注释掉导入不起作用。