Google App Engine:没有名为 setup 的模块

Google App Engine: No module named setup

我是 GAE 的新手,在学习课程时,我需要将它安装到我的系统上。我按照 GAE 网站上的说明进行操作,并在我的 Ubuntu 17.04 系统上成功安装。现在,我创建了一个名为 first-app 的文件夹,其中包含文件 first-app.pyapp.yaml

每当我尝试 运行 dev_appserver.py first-app 时,我都会收到以下错误:

Traceback (most recent call last):
  File "/usr/bin/dev_appserver.py", line 11, in <module>
    import bootstrapping.bootstrapping as bootstrapping
  File "/usr/lib/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 9, in <module>
    import setup
ModuleNotFoundError: No module named 'setup'

我同时安装了 python 2.7 和 python 3.5,默认的 python 是 2.7.13。

以下是first-app.py的内容:

import webapp2

class Mainpage(webapp2.RequestHandler):
    def get(self):
        self.response.write("Hello World")

app=webapp2.WSGIApplication([('/', Mainpage), ], debug=True)

app.yaml 文件的内容是:

runtime: python
api_version: 1
threadsafe: true

handlers:
- url: /
  script: first-app.app

- url: /index\.html
  script: home.app

我应该怎么做才能让它发挥作用?

您似乎以某种方式结束了 运行 它 python 3,请参阅:

  • ImportError: No module named 'setup'

除了尝试回答这些问题之外,我认为您还可以尝试明确选择 python 版本,如下所示:

python2.7 /usr/bin/dev_appserver.py [first-app ...]

一个更 "permanent" 的替代方案不需要您对每次调用都执行上述操作,即修改(作为 root)/usr/bin/dev_appserver.py 并将顶部的 #!/usr/bin/env python 替换为#!/usr/bin/env python2.7。通过此更改,只要您的系统上安装了有效的 2.7 python,它就应该可以正常工作,即使它不是默认的。

它可能看起来很老套,但考虑到 dev_appserver.py 只能与标准的 env GAE 应用程序一起使用,它只支持 python 2.7,恕我直言,这很自然 - Google 本来可以在这种特殊情况下完成了。但由于他们没有,所以在需要时 re-member 到 re-do 它可能会被 SDK 更新删除。