Python中的NoModulenamed***问题及解决

目录

No Module named ***问题

问题描述

python3 No module named 'PIL'

使用命令

No Module named ***问题 问题描述

使用python的时候,老是遇见No Module named的问题,例如在使用TensorFlow Object Detection API的过程中(GitHub:DetectionAPI),过程中的问题

1)protc编译失败

2)object_detection模块导入错误

from object_detection.builders import model_builder
from object_detection.meta_architectures import faster_rcnn_meta_arch
from object_detection.meta_architectures import rfcn_meta_arch
from object_detection.meta_architectures import ssd_meta_arch
from object_detection.models import ssd_resnet_v1_fpn_feature_extractor as ssd_resnet_v1_fpn
from object_detection.protos import hyperparams_pb2
from object_detection.protos import losses_pb2
from object_detection.protos import model_pb2

对于问题1,采用3.3版本的protoc进行编译,注意在research目录下面编译

对于问题2(书中的参考模块是slim,路径:/home/lxl/models-master/research/slim,pwd:/home/lxl/models-master/research)

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

该命令执行完以后,可以在research目录python环境中导入slim模块,但是换一个目录就无法导入了!

也就是python环境变量在当前目录下work on,对于object_detection目录也是如此(export PYTHONPATH=$PYTHONPATH:‘pwd’:‘pwd’/object_detection),如何修改python全部的环境变量,使得在任

何终端路径下面都可以导入module呢?

这时候我们需要配置~/.bashrc文件

sudo gedit ~/.bashrc export PYTHONPATH=$PYTHONPATH:'/home/lxl/models-master/research'

在打开终端,直接导入模块就OK(slim 和object_detection都在research目录下面)

python3 No module named 'PIL'

在python3,scrapy框架已经安装好的情况下,还是出现了:

python3 No module named 'PIL'

在Python3下,PIL已经被Pillow替代了,所以只需要安装Pillow就可以了

使用命令 pip3 install Pillow 

可能中途会一直安装不上去,就跟下图的报红的一样(多半是连接超时),

这时候我们需要做的就是多安装几次,用的还是:

pip3 install Pillow

安装完成之后,重新运行程序,就没问题了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读