ModuleNotFoundError: No module named 'nets'

在《21个项目玩转深度学习》第五章,深度学习中的目标检测。

在安装tensorflow object detection API时,在‘model/research’文件夹下,先运行:

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

再运行:

export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim

   注意:1)等号“=”两边没有空格    2)pwd两边可以加单引号,也可以不加

然后运行:

python object_detection/builders/model_builder_test.py

出现以下问题:

           ModuleNotFoundError: No module named 'nets'

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

问题分析:

'nets'模块在 ‘models/research/Slim’文件夹下定义,在《21个项目》书中,也已经提示“需要将Slim的目录加入PYTHONPATH后才能运行”,按道理说,在上面的第二个命令中已经实现来该功能,model_builder_test.py中的对应文件应该能找到“nets”模块才对,然而就是找不着。

经过多次尝试,后来,我才发现,我是在我搭建的conda虚拟环境下运行以上命令,并执行相关脚本,出现了以上问题。但是当我在系统默认的python环境下再次执行以上第三个命令时,错误不见了。

所以我猜测可能是如下原因:虚拟环境的python与ubuntu默认的python是相隔离的,运行”export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim“命令是将相关路径添加到系统默认的python的环境路径中去了,与虚拟环境的环境变量没有关系,所以在运行脚本时找不到自己添加的路径。

 

猜你喜欢

转载自blog.csdn.net/Strive_For_Future/article/details/81779541