Aks*_*pta 2 google-app-engine dev-appserver google-cloud-platform google-app-engine-python google-cloud-sdk
我是GAE的新手,在做一门课程时,我需要在我的系统上安装它.我按照GAE网站上的说明操作,并成功安装在我的Ubuntu 17.04系统上.现在,我创建了一个文件夹,其中first-app包含文件first-app.py和名称app.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'
Run Code Online (Sandbox Code Playgroud)
我安装了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)
Run Code Online (Sandbox Code Playgroud)
并且app.yaml文件的内容是:
runtime: python
api_version: 1
threadsafe: true
handlers:
- url: /
script: first-app.app
- url: /index\.html
script: home.app
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让它发挥作用?
看来你在某种程度上最终用python 3运行它,请参阅:
除了尝试这些问题的答案,我想你也可以尝试明确选择python版本,如下所示:
python2.7 /usr/bin/dev_appserver.py [first-app ...]
Run Code Online (Sandbox Code Playgroud)
一个更"永久"的替代方案,不需要你为每次调用执行上述操作,将修改(作为root)/usr/bin/dev_appserver.py并#!/usr/bin/env python在顶部替换#!/usr/bin/env python2.7.只要您的系统上安装了有效的2.7 python,即使它不是默认设置,只要这个更改就可以正常工作.
它可能看起来很hacky,但鉴于它dev_appserver.py只能用于标准的env GAE应用程序,它只支持python 2.7,恕我直言,这是相当自然的 - 谷歌可以在这种特殊情况下完成它.但由于他们没有,只需重新成员在需要时重新执行它,因为SDK更新可能会消除它.
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |