2

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

我应该怎么做才能让它工作?

4

1 回答 1

6

看来您最终以某种方式使用 python 3 运行它,请参阅:

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

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

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

它可能看起来很老套,但鉴于它dev_appserver.py只能与仅支持 python 2.7 的标准 env GAE 应用程序一起使用,恕我直言,这很自然——谷歌本可以在这种特殊情况下做到这一点。但既然他们没有,请记住在需要时重新执行它,因为 SDK 更新可能会将其清除。

于 2018-02-25T17:24:04.980 回答