ModuleNotFoundError:没有名为'object_detection'的模块

时间:2018-05-01 08:49:18

标签: python

我尝试在git url

下的object_detection中训练

https://github.com/tensorflow/models/tree/master/research/object_detection

但是,会发生以下错误。

  

ModuleNotFoundError:没有名为'object_detection'的模块

所以我尝试通过编写以下代码来解决问题。

import sys

sys.path.append('/home/user/Documents/imgmlreport/inception/models/research/object_detection')
from object_detection.builders import dataset_builder

此问题尚未解决。

目录结构如下所示。

~/object_detection/train.py

~/object_detection/builders/dataset_bulider.py

这里是完整的错误按摩

  

/home/user/anaconda3/lib/python3.6/site-packages/h5py/ init .py:34:FutureWarning:从float转换issubdtype的第二个参数不推荐使用np.floating

     

将来,它将被视为np.float64 == np.dtype(float).type。     从._conv import register_converters as _register_converters

     

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

     

文件“train.py”,第52行,in       进口培训师

     

文件“/home/user/Documents/imgmlreport/inception/models/research/object_detection/trainer.py”,第26行,在       来自object_detection.builders import optimizer_builder

     

ModuleNotFoundError:没有名为'object_detection'的模块

我如何导入模块?

7 个答案:

答案 0 :(得分:12)

尝试安装已打包的Tensorflow对象检测库

pip install tensorflow-object-detection-api

答案 1 :(得分:0)

object_detection文件夹中有许多模块,我在父目录(研究文件夹)中创建了setup.py来导入所有模块。

Result( "\n Create Image... ")
image img := RealImage( "test", 4, 100, 100 )
Result( "\n Get it's ImageDocument... ")
imageDocument doc = img.ImageGetOrCreateImageDocument()

Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
Result( "\n Clean it!" )
doc.ImageDocumentClean()
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
Result( "\n Make it dirty by setting the first pixel value to the value it has..." )
img.SetPixel(0,0,img.GetPixel(0,0))
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))

答案 2 :(得分:0)

每次在该环境中打开新终端时,都需要导出环境变量。

请注意,命令中每个pwd都有反引号,因为以下命令中可能未显示。反引号与波浪号键相同,但不按Shift键(美国键盘)。

来自tensorflow / models / research /

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

答案 3 :(得分:0)

此错误的原因是安装了object_detection库,因此可行的解决方案之一是在model / research内部运行以下命令


    sudo python setup.py install

如果这样的解决方案不起作用,请在目录“ model / research”中一一执行以下命令


    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
    sudo python setup.py install

我希望这会起作用。从export_inference_graph.py创建模型时,我也面临相同的问题。它对我有用。

答案 4 :(得分:0)

尝试: python setup.py构建 python setup.py install

答案 5 :(得分:0)

在导入对象检测之前,您确实具有“ sys.path.append()”,因此令您惊讶的是,您遇到此错误!

请检查您在sys.path.append()中使用的路径是否正确。

好吧,唯一的错误答案是模块的路径没有正确添加。

除了这里提到的各种方法之外,这是一种可以将“ object_detection”路径永久添加到PYTHONPATH变量的方法。

如果您使用的是Linux系统,请按以下步骤操作:

转到主目录。按Ctrl + H显示隐藏的文件。您将看到一个名为“ .bashrc”的文件。使用代码编辑器(我使用Visual Studio)打开此文件。

在.bashrc文件的最后一行中,添加以下行:

export PYTHONPATH=/your/module/path:/your/other/module/path:your/someother/module/path

然后在代码编辑器中按“保存”。由于“ .bashrc”是“只读”文件,因此编辑器将抛出一个弹出窗口,提示相同。同样在弹出窗口中,将显示一个选项:“尝试sudo”。点击此按钮,现在您可以开始了。

您所有的模块现在都已永久添加到了PYTHONPATH中。这意味着您不必在每次打开终端并开始会话时都运行sys.path.append!

下面是我按照上述步骤操作时没有错误的屏幕截图:

enter image description here

尝试一下。希望对您有所帮助。

答案 6 :(得分:0)

我不得不这样做:
sudo pip3 install -e . (ref)
sudo python3 setup.py install

系统:
操作系统:Ubuntu 16.04、Anaconda(我想这就是为什么我需要使用 pip3python3,即使我使用 Pyehon 3.8 创建了虚拟环境)