来自utils import label_map_util导入错误:没有名为utils的模块

时间:2017-09-29 17:33:11

标签: python python-2.7 tensorflow import object-detection

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

  

追踪(最近一次呼叫最后一次):

     

文件“obj_detect.py”,第20行,

from utils import label_map_util
     

ImportError:没有名为utils的模块

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

  

追踪(最近一次呼叫最后一次):

     

文件“classify_image.py”,第10行,

import object_dt
     

文件“/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py”,第18行,

from utils import label_map_util
     

文件“/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py”,第22行,

from object_detection.protos import string_int_label_map_pb2
     

ImportError:没有名为object_detection.protos的模块

如何解决这个问题?

4 个答案:

答案 0 :(得分:7)

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

你可以在python中用

检查这个
import sys

sys.path

如果这是问题,可以通过

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

答案 1 :(得分:2)

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

1.您需要安装protobuf

https://github.com/google/protobuf/releases
  1. cd您前往object_detection

    的路径

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

  2. 您会在string_int_label_map_pb2.py

    中找到'object_detection\protos'个文件
    1. 没问题,如果仍有问题,可以将object_detection文件夹添加到PYTHONPATH

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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=.

这有望工作!!