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模塊,但是換一個目錄就無法導入瞭!
也就是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。
推薦閱讀:
- Python導入模塊的3種方式小結
- 解決python問題 Traceback (most recent call last)
- 報錯No module named numpy問題的解決辦法
- python修改包導入時搜索路徑的方法
- 關於Python ImportError: No module named 通用解決方法