即使在sys.path
中导入也导致导入失败,这很奇怪。
今天,我在我实验室的电脑上在ubuntu上设置了一个谷歌应用引擎django环境。当我检查代码并在Windows中运行它(在实验室中使用相同的PC)时,它工作正常。
但是当我去宿舍,检查代码并开始运行时,它很奇怪。
我打印sys.path
,如下所示:
['/home/tower/googlecode/mygae', '/home/tower/googlecode/mygae/.google_appengine', '/home/tower/googlecode/mygae/.google_appengine/lib/antlr3', ...]
当我运行python时抱怨
from google.appengine.api import apiproxy_stub_map
ImportError: No module named appengine.api
很容易知道Google模块位于'/home/tower/googlecode/mygae/.google_appengine'
目录,并且每个模块的__init__.py
都存在。
那么这个奇怪的事情可能是什么原因呢?或者我搞砸了什么?
感谢。
答案 0 :(得分:2)
您可以导入google
和google.appengine
吗?
您确定解释器已读取并遍历对模块树的访问权限吗?
答案 1 :(得分:1)
您似乎从其他地方获得了一个名为“google”的模块(或软件包) - 可能是/home/tower/googlecode/mygae
- 并且谷歌模块中没有appengine
。要检查,请打印google.__file__
,如果可能,请google.__path__
;这应该是提供信息。
答案 2 :(得分:0)
有时,当错误不同时,例如语法错误,您可能会获得模块的导入错误。试试
import pdb;pdb.set_trace()
在导入之前然后s(tep)进入导入,并且n(ext)thruogh有问题的模块看到你得到错误。