【问题标题】:Google App Engine: No module named setupGoogle App Engine:没有名为 setup 的模块
【发布时间】:2018-08-05 00:16:32
【问题描述】:

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

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

【问题讨论】:

  • 能不能把app.yaml放在这里
  • 我已经把app.yaml的内容放到问题里了。

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


【解决方案1】:

看来您最终以某种方式使用 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 更新可能会将其清除。

【讨论】:

  • 哇!这刚刚奏效,现在服务器在localhost:8000 运行。但是现在新的问题是当我在浏览器中打开这个链接时,它会重定向到link,这会打开一个显示实例的谷歌应用引擎页面。
  • 我的错!我正在打开管理服务器。现在工作正常。但是我想知道是否每次都需要输入python2.7?
猜你喜欢
  • 2015-04-24
  • 1970-01-01
  • 2021-07-05
  • 2015-01-25
  • 1970-01-01
  • 2017-11-12
  • 2013-04-04
  • 2019-05-24
  • 2015-09-02
相关资源
最近更新 更多