关于python:from utils import label_map_util导入错误:没有名为utils的模块

from utils import label_map_util Import Error: No module named utils

我试图运行object_detection.ipynb类型程序,但它是一个普通的python程序(.py)。 它运行得很好,但在..models/research/object_detection文件夹中运行时,但主要问题是当我尝试在另一个目录中使用正确的sys.append运行此代码时,我最终得到以下错误:

Traceback (most recent call last):

File"obj_detect.py", line 20, in

1
from utils import label_map_util

ImportError: No module named utils

如果我尝试将文件从..models/research/object_detection文件夹导入到不同目录中的python程序中,那么我最终会遇到更多错误,如下所示:

Traceback (most recent call last):

File"classify_image.py", line 10, in

1
import object_dt

File"/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py", line 18, in

1
from utils import label_map_util

File"/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py", line 22, in

1
from object_detection.protos import string_int_label_map_pb2

ImportError: No module named object_detection.protos

如何解决这个问题?


可能是你的object_detection文件夹不在你的路径上,所以python不知道在哪里查找文件。

你可以在python中查看这个

1
2
3
import sys

sys.path

如果这是问题,你可以解决它

1
sys.path.insert(0, 'path/to/your/object_detection')


我见过同样的问题。那是因为string_int_label_map_pb2.py文件不存在。

1.你需要安装protobuf

1
https://github.com/google/protobuf/releases
  • cdobject_detection的路径

    protoc object_detection / protos / string_int_label_map.proto --python_out =。

  • 你会在'object_detection\protos'中找到string_int_label_map_pb2.py文件

  • 没问题,如果仍有问题,可以将object_detection文件夹添加到PYTHONPATH

  • 您需要下载protoc版本3.3(已编译)。在bin目录中使用protoc来运行此命令,如下所示:

    1
    2
    3
    4
    5
    6
    7
    tensorflow$ mkdir protoc_3.3
    tensorflow$ cd protoc_3.3
    tensorflow/protoc_3.3$ wget wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip
    tensorflow/protoc_3.3$ chmod 775 protoc-3.3.0-linux-x86_64.zip
    tensorflow/protoc_3.3$ unzip protoc-3.3.0-linux-x86_64.zip
    tensorflow/protoc_3.3$ cd ../models/research/
    tensorflow/protoc_3.3$ /home/saikishor/tensorflow/protoc_3.3/bin/protoc object_detection/protos/*.proto --python_out=.

    这将有希望工作!


    在python *。/ site-packages文件夹中,您可以看到utils文件夹。
    默认情况下,当我们运行"from utils import label_map_util"时,它将尝试在python。* / site-packages / utils文件夹中搜索label_map_util。

    通过更改目录可以解决此错误
    要么
    将文件从tensorflow / models / utils复制到python *。* / site-packages / utils