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

Posted

技术标签:

【中文标题】from utils import label_map_util 导入错误:没有名为 utils 的模块【英文标题】:from utils import label_map_util Import Error: No module named utils 【发布时间】:2018-03-11 16:10:24 【问题描述】:

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

Traceback(最近一次调用最后一次):

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

from utils import label_map_util

ImportError: 没有名为 utils 的模块

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

Traceback(最近一次调用最后一次):

文件“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 的模块

如何解决这个问题?

【问题讨论】:

“正常类型的程序”是什么意思?您是否为您的项目创建了虚拟环境?你从哪里得到这些脚本的?您的脚本根本看不到您尝试使用的模块,换句话说,这些模块不在 Python 路径中。你可以在这里阅读:***.com/questions/19917492/how-to-use-pythonpath 不,我的意思是我根据我的要求将 object_detection.ipynb 中存在的代码编辑为一个新的 python 文件。 【参考方案1】:

可能是您的 object_detection 文件夹不在您的路径上,因此 python 不知道在哪里查找文件。

你可以在 python 中检查这个

import sys

sys.path

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

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

【讨论】:

问题是你不能这样做,因为文件夹中的依赖文件是以不同的方式导入的,比如 from object_detection.ptoso import .... 这个“路径/到/你的/object_detection”是什么?我不明白...你能解释一下吗? 对象检测文件夹的位置。例如“c:/projects/object_detection”或“/home/projects/object_detection”【参考方案2】:

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

1.你需要安装protobuf

https://github.com/google/protobuf/releases

    cd 你通往object_detection 的路径

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

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

    没关系,如果还有问题,您可以将您的object_detection文件夹添加到PYTHONPATH

【讨论】:

你需要安装protobuf 3.3,然后才可以,其他版本不行【参考方案3】:

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

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

【讨论】:

【参考方案4】:

您需要下载 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=.

希望这会奏效!

【讨论】:

以上是关于from utils import label_map_util 导入错误:没有名为 utils 的模块的主要内容,如果未能解决你的问题,请参考以下文章

from django.utils.importlib import import_module ImportError: No module named importlib

TensorFlow成功解决 from keras.utils import Sequence ImportError: cannot import name ‘Sequence‘

由于错误 <<ImportError: cannot import name 'lobpcg' from 'sklearn.utils.fixes' >> 无法导入 SMOTE

Django报错ImportError: cannot import name ‘ugettext_lazy‘ from ‘django.utils.translation‘

ImportError: cannot import name ‘_maybe_get_pandas_wrapper_freq‘ from ‘statsmodels.tsa.filters._util

Vue 中 import from @符号指的是什么