Python中的 No Module named ***問題及解決

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模塊,但是換一個目錄就無法導入瞭!

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

安裝完成之後,重新運行程序,就沒問題瞭

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: