尝试让Google App Engine在本地运作后,我认为最好在这里提出这个问题,然后自己回答。我相信你们中的一些人可能会遇到这个问题。
安装GAE SDK for Python后,我尝试运行本教程。我从GitHub克隆了他们的'Hello World'应用程序,并尝试使用dev_appserver.py在本地运行它。我不断收到一条错误消息“没有名为appengine.api的模块”
我使用TensorFlow和Google开发的一些软件包,并找到了解决这个问题的方法。我将在下面回答。
答案 0 :(得分:1)
发生在我身上的是Google开发的一些库已添加到我的PYTHONPATH中。所以当dev_appserver.py尝试执行以下行时,
from google.appengine.api import appinfo
它抛出错误说" ImportError:没有名为appengine.api的模块"因为它已经在寻找一个不同的谷歌模块。在我的情况下,这是由Protobuf引起的。我试图找到一种方法来保持Protobuf,但时间到了我,我不想再浪费时间了。你可以运行
pip list
并查看您是否安装了此模块。我做的是然后使用
卸载它sudo pip uninstall protobuf
这会将已添加的软件包卸载到PYTHONPATH,即
/usr/local/lib/python2.7/site-packages/google/
创建此问题的Google路径是哪条。现在,为了安全,如果你运行
export PYTHONPATH="$PYTHONPATH:/usr/local/google_appengine"
它应该处理dev_appserver.py导入模块,它应该运行。
请发表评论,或者如果你找到一种新方法,请告诉我。
答案 1 :(得分:0)
更新:此问题已在SDK版本1.9.40中修复。
这可能是由GAE Issue 12963引起的,它仍会影响当前的(1.9.38)SDK版本。见"ImportError: No module named webapp2" after Linux SDK upgrade (1.9.35 -> 1.9.38)
如果您的SDK版本是1.9.37或1.9.38降级到1.9.36,您可以找到here。至少在修复程序发布之前。这使您无需手动操作PYTHONPATH,而可能会让您在路上遇到麻烦。