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

时间:2018-02-25 12:13:55

标签: google-app-engine google-cloud-platform google-app-engine-python google-cloud-sdk dev-appserver

我是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

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

1 个答案:

答案 0 :(得分:5)

看来你最终以python 3运行它,请参阅:

除了尝试这些问题的答案之外,我想你也可以尝试明确选择python版本,如下所示:

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

一个更“永久”的替代方案,不需要你为每次调用执行上述操作,将修改(以root身份)/usr/bin/dev_appserver.py并用{{1}替换顶部的#!/usr/bin/env python }。只要您的系统上安装了有效的2.7 python,即使它不是默认设置,它也应该正常工作。

它看似hacky,但考虑到#!/usr/bin/env python2.7只能用于标准的env GAE应用程序,它只支持python 2.7,恕我直言,这是相当自然的 - 谷歌可以在这种特殊情况下完成它。但是,由于他们没有,只需重新成员在需要时重新执行它,因为SDK更新可能会将其删除。