V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
musray
V2EX  ›  Google App Engine

Google App Engine 无法实现官方 python 教程 helloworld 的 deploy,希望大家帮忙

  •  
  •   musray · 2015-06-06 17:46:35 +08:00 · 9816 次点击
    这是一个创建于 3468 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究GAE,根据官方的Python Tutorial尝试了简单的项目配置。尝试Locally run,成功。尝试Deploy,失败。我执行过的详细步骤如下:

    1. 新建文件夹helloworld

    2. 在文件夹内新建helloworld.py,内容如下:

      import webapp2
      
      class MainPage(webapp2.RequestHandler):
          def get(self):
              self.response.headers['Content-Type'] = 'text/plain'
              self.response.write('Hello, World!')
      
      app = webapp2.WSGIApplication([
          ('/', MainPage),
      ], debug=True)
      
    3. 在文件夹内新建app.yaml文件,内容如下:

      version: 1
      runtime: python27
      api_version: 1
      threadsafe: true

      handlers:
      - url: /.*
      script: helloworld.app

    4. 在GAE客户端选择加载helloworld文件夹,并且run这个项目,在浏览器里可以看到一行hello world。
      这个步骤我没问题。

    5. 在GAE console里新建一个项目。将项目ID加入app.yaml文件的首行。

    6. 在GAE客户端选择deploy,将项目部进行部署。
      我就是失败在这一步,部署失败。log文件显示内容如下:

      *** Running appcfg.py with the following flags:
      --oauth2_credential_file=~/.appcfg_oauth2_tokens update

      No previously stored oauth2 token found.
      A browser will be opened to ask for user permission.

      07:34 AM Application: my-first-app-967; version: 1
      07:34 AM Host: appengine.google.com
      07:34 AM
      Starting update of app: my-first-app-967, version: 1
      07:34 AM Getting current resource limits.

    目前进行过的尝试:

    1. 使用命令行进行部署
      appcfg.py update my_project_folder
      失败。命令行提示同样的错误。

    2. 重启电脑,重装GAE客户端
      失败。仍然是同样的错误。

    3. 增加Extra Flag
      --noauth_local_webserver
      失败。不仅deploy失败,locally run都失败了。

    实在是搞不懂了,挫败感。希望大家忙帮。

    23 条回复    2016-04-28 19:27:26 +08:00
    gowithwind
        1
    gowithwind  
       2015-06-06 18:32:54 +08:00
    是不是被墙限制了
    musray
        2
    musray  
    OP
       2015-06-06 18:44:33 +08:00
    @gowithwind 我也猜过这种可能性。我是用pac代理翻墙的,不知道是不是受影响。用vpn能好点?
    Livid
        3
    Livid  
    MOD
       2015-06-06 19:27:52 +08:00 via iPhone
    或者试试把代码复制到国外的 VPS 上,从 VPS 上用命令行部署。
    rwalle
        4
    rwalle  
       2015-06-06 19:50:17 +08:00
    我从你的帖子中看不出来你具体是在Windows,Linux还是Mac上进行的操作,我觉得的确有可能是网络连接的问题,你使用全局vpn连接,或者用其它终端命令连接appspot.com试下
    cnbuff410
        5
    cnbuff410  
       2015-06-06 20:39:06 +08:00
    可能是你的oauth出问题?

    你看看你有没有这个文件 ~/.appcfg_oauth2_tokens

    https://cloud.google.com/appengine/docs/python/tools/uploadinganapp
    musray
        6
    musray  
    OP
       2015-06-06 22:51:34 +08:00   ❤️ 1
    @cnbuff410 我是os x, ~/.appcfg_oauth2_tokens这个文件确实不存在。
    根据你给的[网址](https://cloud.google.com/appengine/docs/python/tools/uploadinganapp),和GAE的log,都提到GAE会自动的请求我的google账户认证:
    >appcfg.py uses your Google account to authenticate. The default authentication scheme is OAuth 2.0, which asks the user to login and authorize appcfg through a browser.
    但实际上GAE并没有自动弹出浏览器让我登陆google账号。

    另外,我在GAE里也没找到可以手动登陆g账号的地方。还在研究,累死。
    musray
        7
    musray  
    OP
       2015-06-06 23:04:34 +08:00
    @rwalle 我用os x10.10;翻墙用tunnelblick,直接用商家提供的vpn配置文件上网。
    网站的访问都没问题,但终端里ping appspot.com或者ping google.com,都Request timeout;ping baidu.com是ok的。
    musray
        8
    musray  
    OP
       2015-06-06 23:13:08 +08:00
    @Livid 看来可以考虑买一个vps了,翻墙也能用。
    其实我就是在udacity上报了个课,课上要求用GAE部署自己的网站。没想到牵出这么多问题来。逐个击破吧。
    感谢所有人的答复。
    cnbuff410
        9
    cnbuff410  
       2015-06-07 00:14:13 +08:00
    @musray In the case where you do not have access to the browser on the machine that runs appcfg.py, specify the --noauth2_local_webserver option and follow the instructions to authenticate.
    isweal
        10
    isweal  
       2015-06-07 08:54:40 +08:00 via iPad
    lilydjwg
        11
    lilydjwg  
       2015-06-07 09:55:28 +08:00
    @musray PAC 只有浏览器和一些系统集成的代理设置能够使用(需要 JavaScript 解释器的)。命令行下设置 http_proxy 和 https_proxy 环境变量可能有用。如果你的 HTTP 代理支持 HTTP CONNECT proxychains 也可以用。
    rwalle
        12
    rwalle  
       2015-06-07 10:50:34 +08:00
    @musray 那你这很可能是网络连接的问题了,最好开全局vpn搞
    KoleHank
        13
    KoleHank  
       2015-06-07 10:55:41 +08:00
    @musray http://huangke.info/li-yong-gaeda-jian-kindlede-tui-song-fu-wu-kindleear/

    这个是我直接部署GAE的一个记录,看看是否有帮助吧。

    之前在本地windows下部署始终失败,与代理有关。这个记录的是在国外vps上面部署的过程。
    KoleHank
        14
    KoleHank  
       2015-06-07 10:58:14 +08:00
    @musray 关键的认证那一块,看看是不是缺少了gcloud auth login 步骤,可以加 --no-launch-browser,不让gcloud程序去获取token值,自己手动拷贝url打开后,登录后手动拷贝token值回去
    musray
        15
    musray  
    OP
       2015-06-07 17:07:00 +08:00
    @rwalle 买了3个月的Astrill,连接OpenVPN,如愿以偿的deploy成功了。这算是我的第一个网站吗,呵呵。
    http://my-first-app-967.appspot.com/

    但Atrill还在摸索,有些问题待解决。
    musray
        16
    musray  
    OP
       2015-06-07 17:08:39 +08:00
    @lilydjwg 用pac代理,在命令行尝试export http_proxy和export https_proxy,还是不行。用OpenVPN搞定了。
    musray
        17
    musray  
    OP
       2015-06-07 17:10:39 +08:00
    @KoleHank 多谢,学习一下。
    lilydjwg
        18
    lilydjwg  
       2015-06-07 17:43:38 +08:00
    @musray 大概是 gae 那东西不支持从环境变量读取代理。OpenVPN 现在还有能用的呀?
    musray
        19
    musray  
    OP
       2015-06-07 21:26:05 +08:00
    @lilydjwg 选的Astrill, OpenVPN一开始连上过,但后来就一直不行了。又花了几刀,升级成StealthVPN,好用多了。
    luyuhao
        20
    luyuhao  
       2015-10-20 21:49:52 +08:00
    我遇到了同样的问题,
    Getting current resource limits.
    请问下一定要用国外的 VPN 么,我用的是海豚遨游的 chrome 翻墙插件,貌似还是不行,是否有其他的解决方法?
    shally1995
        21
    shally1995  
       2015-12-01 16:56:13 +08:00
    l 楼主我遇到和你一样的问题了,初衷也是在 UDACITY 上课,估计我上的和你一样的课,现在面临你之前一样的课,我用的是龙卷风浏览器翻墙软件,你当时怎么解决的呀!!!急求!非常感谢!!!
    linhaoran
        22
    linhaoran  
       2016-02-12 06:51:17 +08:00 via Android
    我来给一个相对简单点的解决方案吧。

    之前遇到的情况跟你类似,环境是 win10+shadowsocks(自建 vps),也是卡在 Getting current resource limits.这一步。

    我的解决方法:
    1. 抛弃官方的 sdk ,代码托管到 GitHub 。
    2. gcloud console 里,从上方菜单栏进入 shell ,然后从 shell 里 pull 回源码,用 appcfg 部署。
    总结:好处是通过浏览器就可以解决上述问题,而且不用购买 VPS ;坏处是 GitHub 上免费的都是 public 库,如果涉及到密码隐私等问题可能有一定的风险。

    有 vps 的,可以通过 vps 保存代码,同样通过 gcloud shell 上 pull 然后部署。私密性更好。
    life
        23
    life  
       2016-04-28 19:27:26 +08:00
    @musray 同样问题,请问后来是如何解决的?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1078 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:17 · PVG 03:17 · LAX 11:17 · JFK 14:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.