Google App Engine:没有名为设置的模块



我是GAE的新手,在进行课程时,我需要在系统上安装它。我遵循GAE网站上的说明,并成功安装在我的Ubuntu 17.04系统上。现在,我创建了一个带有文件first-app.pyapp.yaml的名称first-app的文件夹。

每当我尝试运行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:没有名为"设置"的模块
  • dev_appserver.py错误尝试部署到Google Appengine

除了尝试对这些问题的答案外,我认为您还可以尝试明确选择Python版本,例如:

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

一个更"永久"的替代方案,不需要您对每次调用进行以上操作将是修改(作为root(/usr/bin/dev_appserver.py,然后用#!/usr/bin/env python2.7在顶部替换#!/usr/bin/env python。通过此更改,只要您在系统上安装有效的2.7 Python安装,即使不是默认一个。

它可能看起来很骇人听闻,但是鉴于dev_appserver.py只能与仅支持Python 2.7的标准Env Gae应用一起使用,IMHO很自然 - Google可以在这种特殊情况下做到这一点。但是由于他们没有,所以只需在需要时重新任命它,因为SDK更新可能会擦除。

相关内容

  • 没有找到相关文章

最新更新