【问题标题】:Google App Engine - Error when running dev_appserver.py - No module named appengine.apiGoogle App Engine - 运行 dev_appserver.py 时出错 - 没有名为 appengine.api 的模块
【发布时间】:2016-11-06 20:24:00
【问题描述】:

在尝试让 Google App Engine 在本地工作后,我认为最好在这里提出这个问题,然后自己回答。我相信你们中的一些人可能会遇到这个问题。

安装 GAE SDK for Python 后,我尝试运行该教程。我从 GitHub 克隆了他们的“Hello World”应用程序,并尝试使用 dev_appserver.py 在本地运行它。我不断收到一条错误消息,提示“没有名为 appengine.api 的模块”

我使用 TensorFlow 和一些由 Google 开发的软件包,并找到了解决此问题的方法。我会在下面回答。

【问题讨论】:

    标签: python python-2.7 google-app-engine


    【解决方案1】:

    更新:该问题已在 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,这可能会给您带来麻烦。

    【讨论】:

      【解决方案2】:

      发生在我身上的是一些由 Google 开发的库已经添加到我的 PYTHONPATH 中。因此,当 dev_appserver.py 尝试执行以下行时,

      from google.appengine.api import appinfo
      

      它抛出一个错误,说“ImportError:没有名为 appengine.api 的模块”,因为它已经在查看不同的 google 模块。就我而言,这是由 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 导入模块并且它应该运行。

      请发表评论,或者如果您想出一种新的方法,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 2018-08-05
        • 1970-01-01
        • 1970-01-01
        • 2021-07-05
        相关资源
        最近更新 更多