Python中的 No Module named ***问题及解决
目录
- 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
安装完成之后,重新运行程序,就没问题了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。