KindleEar 搭建教程:推送 RSS 订阅到 Kindle

“Kindle推送”相关阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 802 条留言

  1. 01:16 PM Host: appengine.google.com
    01:16 PM Application: for-my-kindle; version: 1
    01:16 PM Starting update of app: for-my-kindle, version: 1
    01:16 PM Getting current resource limits.
    为啥辣么快就停了

  2. 您好,目前我已经按照步骤成功搭建了自己的appspot.com,但是点击my和Logs会出现internal server error,检查了GAE后台,发现是索引编制没有成功,一直显示正在编制。等了大概6个小时还是正在编制,遂按照FAQ手动更新requese,但依然没成功。检查了日志错误,发现my和logs均显示错误500,logs最终显示Unbound Local Error: local variable ‘mylogs’ referenced before assignment,而my最终显示Need Index Error: The index for this query is not ready to serve. See the Datastore Indexes page in the Admin Console.请问该如何解决?谢谢!

  3. C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.p
    update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
    03:55 PM Host: appengine.google.com
    03:55 PM Application: zishubao-kindle; version: 1
    03:55 PM Starting update of app: zishubao-kindle, version: 1
    03:55 PM Getting current resource limits.
    03:55 PM Scanning files on local disk.
    03:55 PM Cloning 15 static files.
    03:55 PM Cloning 387 application files.
    03:55 PM Compilation starting.
    03:55 PM Compilation completed.
    03:55 PM Starting deployment.
    03:56 PM Checking if deployment succeeded.
    03:56 PM Deployment successful.
    03:56 PM Checking if updated app version is serving.
    03:56 PM Completed update of app: zishubao-kindle, version: 1
    03:56 PM Application: zishubao-kindle; module: worker; version: 1
    03:56 PM Starting update of app: zishubao-kindle, module: worker, version: 1
    03:56 PM Getting current resource limits.
    03:56 PM Scanning files on local disk.
    03:56 PM Cloning 15 static files.
    03:56 PM Cloning 387 application files.
    03:56 PM Compilation starting.
    03:56 PM Compilation completed.
    03:56 PM Starting deployment.
    03:56 PM Checking if deployment succeeded.
    03:56 PM Deployment successful.
    03:56 PM Checking if updated app version is serving.
    03:56 PM Completed update of app: zishubao-kindle, module: worker, version: 1

    C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py
    update C:\kindleear
    03:57 PM Application: zishubao-kindle; version: 1
    03:57 PM Host: appengine.google.com
    03:57 PM Starting update of app: zishubao-kindle, version: 1
    03:57 PM Getting current resource limits.
    03:57 PM Scanning files on local disk.
    03:57 PM Cloning 15 static files.
    03:57 PM Cloning 387 application files.
    03:57 PM Compilation starting.
    03:57 PM Compilation completed.
    03:57 PM Starting deployment.
    03:57 PM Checking if deployment succeeded.
    03:57 PM Deployment successful.
    03:57 PM Checking if updated app version is serving.
    03:57 PM Completed update of app: zishubao-kindle, version: 1
    03:57 PM Uploading index definitions.
    03:58 PM Uploading cron entries.
    03:58 PM Uploading task queue entries.
    03:58 PM Uploading dispatch entries.

    C:\Program Files (x86)\Google\google_appengine>
    第二条指令输完后并没出现邮箱,而是重新出现上面的指令,请问怎么解决?谢谢!

    • 籽言 您好。邮箱密码只需要输入一次,并不是两天命令都需要输入。或者之前上传过,再次上传时也不需要再次输入。

      • 你好,我之前是两条指令一起输的,感觉一直没有成功过…期间有跳转到一个google网页,但只要点允许就可以了…(期间我貌似从来没有输过邮箱密码)后来我试着登录KindleEar,可以成功登录也可以设置,但是推送状态一直显示“wrong SRC_EMAIL”,想问下这是不是没有设置成功?麻烦你了,谢谢!

  4. 您好,由于有的自定义rss不是每天更新,我设置的每天推送,所以那些未更新的每天都会重复推送以前已推送过的内容,何解?

  5. 弄好之后吧准备工作里面的几个软件卸载了也没事吧?就是说是一劳永逸的吗?另外 设置的是7点推送 结果10点才给我推送 有办法改善吗?

    • 代佳军 您好。上传成功后,就和本地的文件没关系了,可以随意处置。

      推送时间问题,请先检查一下“设置”中时区选的是不是 GMT+8。另外,推送时间以“投递日志”为准,而不是 Kindle 接收到的时间为准。推送时间确实存在一定的误差,我设置的是 8 点,但实际推送是 7:20 左右。这个可以去项目 issue 页询问。

  6. C:\Users\51407>cd “C:\Program Files (x86)\Google\google_appengine”

    C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
    File “appcfg.py”, line 23
    “””Convenience wrapper for starting an appengine tool.”””
    ^
    SyntaxError: invalid syntax

    C:\Program Files (x86)\Google\google_appengine>
    怎么回事?

      • 重新安装GoogleAppEngine 解决了! 还是用Sublime Text这款软件修改代码 才不会出错 另外如果大家遇到appcfg.py无法保存修改的时候 只需要对appcfg.py 进行“管理员取得所有权”即可

  7. 08:18 PM Host: appengine.google.com
    08:18 PM Application: gikolov-strenthen; version: 1
    08:18 PM Starting update of app: gikolov-strenthen, version: 1
    08:18 PM Getting current resource limits.
    08:18 PM Scanning files on local disk.
    08:18 PM Cloning 15 static files.
    08:18 PM Cloning 387 application files.
    08:18 PM Compilation starting.
    08:18 PM Compilation completed.
    08:18 PM Starting deployment.
    08:18 PM Checking if deployment succeeded.
    08:18 PM Deployment successful.
    08:18 PM Checking if updated app version is serving.
    08:18 PM Completed update of app: gikolov-strenthen, version: 1
    08:18 PM Application: gikolov-strenthen; module: worker; version: 1
    08:18 PM Starting update of app: gikolov-strenthen, module: worker, version: 1
    08:18 PM Getting current resource limits.
    08:18 PM Scanning files on local disk.
    08:18 PM Cloning 15 static files.
    08:19 PM Cloning 387 application files.
    08:19 PM Compilation starting.
    08:19 PM Compilation completed.
    08:19 PM Starting deployment.
    08:19 PM Checking if deployment succeeded.
    08:19 PM Deployment successful.
    08:19 PM Checking if updated app version is serving.
    08:19 PM Completed update of app: gikolov-strenthen, module: worker, version: 1

    分别输入
    C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
    C:\python27\python.exe appcfg.py update C:\kindleear以后没有弹出Email的提示。。。。。感觉没什么错误啊

    • 行了我找到问题了…… 之前我输入第一个命令弹出了一次,然后输入第二行命令以后提示error,之后我删除了kindleear文件夹有解压了一遍,然后重复操作,一切正常,但是没有弹出email的提示……刚才我试了试可以进到我的kindleear了,不好意思我打粗心打扰了。。。

  8. 之前推送没问题,后来添加了自定义rss(会不会是因为地址格式不对?),推送日志里边显示ok,但是kindle一直收不到,是怎么回事?

  9. 更改appcfg.py 時,
    保存時出現:
    i/o error
    errno13 premission denied

    請問怎麼解決呢?
    感謝了!

  10. C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear
    02:31 PM Application: ditr-keyr; version: 1
    02:31 PM Host: appengine.google.com
    02:31 PM Starting update of app: ditr-keyr, version: 1
    02:31 PM Getting current resource limits.
    Traceback (most recent call last):
    File “appcfg.py”, line 136, in
    run_file(__file__, globals())
    File “appcfg.py”, line 132, in run_file
    execfile(_PATHS.script_file(script_name), globals_)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5497, in
    main(sys.argv)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5488, in main
    result = AppCfgApp(argv).Run()
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2966, in Run
    self.action(self)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5144, in __call__
    return method()
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3876, in Update
    self._UpdateWithParsedAppYaml(appyaml, self.basepath)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3929, in _UpdateWithParsedAppYaml
    self.UpdateVersion(rpcserver, basepath, appyaml, APP_YAML_FILENAME)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3814, in UpdateVersion
    return appversion.DoUpload(paths, openfunc)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2401, in DoUpload
    self.error_fh)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 497, in GetResourceLimits
    resource_limits.update(_GetRemoteResourceLimits(logging_context))
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 467, in _GetRemoteResourceLimits
    yaml_data = logging_context.Send(‘/api/appversion/getresourcelimits’)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 1709, in Send
    result = self.rpcserver.Send(url, payload=payload, **kwargs)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc_httplib2.py”, line 246, in Send
    url, method=method, body=payload, headers=headers)
    File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 579, in new_request
    self._refresh(request_orig)
    File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 787, in _refresh
    self._do_refresh_request(http_request)
    File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 806, in _do_refresh_request
    self.token_uri, method=’POST’, body=body, headers=headers)
    File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1584, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
    File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1332, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
    File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1268, in _conn_request
    conn.connect()
    File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1011, in connect
    sock.connect((self.host, self.port))
    File “C:\Program Files (x86)\Google\google_appengine\socks.py”, line 362, in connect
    raise GeneralProxyError((5,_generalerrors[5]))
    socks.GeneralProxyError: (5, ‘bad input’)

    C:\Program Files (x86)\Google\google_appengine>cd C:\Program Files (x86)\Google\google_appengine

    C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
    02:33 PM Host: appengine.google.com
    Usage: appcfg.py [options] update | [file, …]

    appcfg.py: error: Error parsing C:\kindleear\app.yaml: mapping values are not allowed here
    in “C:\kindleear\app.yaml”, line 2, column 8.

    C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear
    Usage: appcfg.py [options] update | [file, …]

    appcfg.py: error: Error parsing C:\kindleear\app.yaml: mapping values are not allowed here
    in “C:\kindleear\app.yaml”, line 2, column 8.

    C:\Program Files (x86)\Google\google_appengine>
    再次上传就变成这样了

    • June 您好。请注意错误提示中下面这段代码:

      appcfg.py: error: Error parsing C:\kindleear\app.yaml: mapping values are not allowed here in “C:\kindleear\app.yaml”, line 2, column 8.

      提示 app.yaml 的第 2 行有误,请仔细检查是否存在冒号后面没有空格等情况。

      另外,您遇到的情况无需重新上传,解决方法请参考上一条留言的回复。

  11. KindleEar 搭建成功以后,我创建了一个新用户,然后把原来的admin用户删掉了,然后就不能新建用户了,我想问一下怎样才能恢复新建用户

    • June 您好。admin 用户是管理员账号,具有创建用户的权限,而新建的账号都是普通账号,没有此权限。所以请务必保留 admin 账号。恢复 admin 用户的具体方法为:进入 App Engine,点击左侧导航的 Memcache,再点击右侧窗口的【清除快取】按钮即可。

      这样输入用户名 admin 和密码 admin 即可再次进入。

      • C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
        11:59 AM Host: appengine.google.com
        11:59 AM Application: jason-140003; version: 1
        11:59 AM Starting update of app: jason-140003, version: 1
        11:59 AM Getting current resource limits.
        Traceback (most recent call last):
        File “appcfg.py”, line 136, in
        run_file(__file__, globals())
        File “appcfg.py”, line 132, in run_file
        execfile(_PATHS.script_file(script_name), globals_)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5497, in
        main(sys.argv)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5488, in main
        result = AppCfgApp(argv).Run()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2966, in Run
        self.action(self)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5144, in __call__
        return method()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3846, in Update
        self.UpdateUsingSpecificFiles()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3838, in UpdateUsingSpecificFiles
        self.UpdateVersion(rpcserver, self.basepath, module_yaml, file_name)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3814, in UpdateVersion
        return appversion.DoUpload(paths, openfunc)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2401, in DoUpload
        self.error_fh)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 497, in GetResourceLimits
        resource_limits.update(_GetRemoteResourceLimits(logging_context))
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 467, in _GetRemoteResourceLimits
        yaml_data = logging_context.Send(‘/api/appversion/getresourcelimits’)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 1709, in Send
        result = self.rpcserver.Send(url, payload=payload, **kwargs)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc_httplib2.py”, line 246, in Send
        url, method=method, body=payload, headers=headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 579, in new_request
        self._refresh(request_orig)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 787, in _refresh
        self._do_refresh_request(http_request)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 806, in _do_refresh_request
        self.token_uri, method=’POST’, body=body, headers=headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1584, in request
        (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1332, in _request
        (response, content) = self._conn_request(conn, request_uri, method, body, headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1268, in _conn_request
        conn.connect()
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1011, in connect
        sock.connect((self.host, self.port))
        File “C:\Program Files (x86)\Google\google_appengine\socks.py”, line 362, in connect
        raise GeneralProxyError((5,_generalerrors[5]))
        socks.GeneralProxyError: (5, ‘bad input’)

        C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear
        11:59 AM Application: jason-140003; version: 1
        11:59 AM Host: appengine.google.com
        11:59 AM Starting update of app: jason-140003, version: 1
        11:59 AM Getting current resource limits.
        Traceback (most recent call last):
        File “appcfg.py”, line 136, in
        run_file(__file__, globals())
        File “appcfg.py”, line 132, in run_file
        execfile(_PATHS.script_file(script_name), globals_)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5497, in
        main(sys.argv)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5488, in main
        result = AppCfgApp(argv).Run()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2966, in Run
        self.action(self)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5144, in __call__
        return method()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3876, in Update
        self._UpdateWithParsedAppYaml(appyaml, self.basepath)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3929, in _UpdateWithParsedAppYaml
        self.UpdateVersion(rpcserver, basepath, appyaml, APP_YAML_FILENAME)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3814, in UpdateVersion
        return appversion.DoUpload(paths, openfunc)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2401, in DoUpload
        self.error_fh)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 497, in GetResourceLimits
        resource_limits.update(_GetRemoteResourceLimits(logging_context))
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 467, in _GetRemoteResourceLimits
        yaml_data = logging_context.Send(‘/api/appversion/getresourcelimits’)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 1709, in Send
        result = self.rpcserver.Send(url, payload=payload, **kwargs)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc_httplib2.py”, line 246, in Send
        url, method=method, body=payload, headers=headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 579, in new_request
        self._refresh(request_orig)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 787, in _refresh
        self._do_refresh_request(http_request)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 806, in _do_refresh_request
        self.token_uri, method=’POST’, body=body, headers=headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1584, in request
        (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1332, in _request
        (response, content) = self._conn_request(conn, request_uri, method, body, headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1268, in _conn_request
        conn.connect()
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1011, in connect
        sock.connect((self.host, self.port))
        File “C:\Program Files (x86)\Google\google_appengine\socks.py”, line 362, in connect
        raise GeneralProxyError((5,_generalerrors[5]))
        socks.GeneralProxyError: (5, ‘bad input’)
        输入上传指令后出现这些,却没有输入邮箱的提示,是哪里出问题了呢?

  12. 您好,请问一下配置过程中出现这个错误是怎么回事?
    urllib2.URLError:
    我用的是GAE SDK for Python 1.9.38

  13. 您好,点击Edit with IDLE打开 appcfg.py后,如何查找代码?我用ctrl+F不知为何输入后没有反应。电脑小白望海涵。

    • ttn 您好。Python 原生 IDLE 的搜索就是 Ctrl+F,但并不是很好用,刚试了下,好像只有点击【Close】按钮关闭搜索框激活编辑窗口,才高亮显示搜索的内容。

      • 点击close后仍然没有反应,能告知代码所在大概位置吗?我直接拉进度条

          • 真的不行了,认真找了好久还是没看到。。。望大侠救我一命!告知具体的行数,真的麻烦了!

            • 您打开的是 appcfg.py 这个文件吗?下面这行代码就在第 20 行。

              """Convenience wrapper for starting an appengine tool."""
              • 名字应该是对的,但在第20行真的没有那行代码,评论好像不能发截图,已加QQ群望详询。非常感谢!

  14. 分别输入下面两条命令将 KindleEar 上传到 GAE:
    C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
    C:\python27\python.exe appcfg.py update C:\kindleear

    输入第一条命令,结果如下:
    C:\Program Files (x86)\Google\google_appengine>C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml
    02:45 PM Host: appengine.google.com
    02:45 PM Application: kindle-2008; version: 1
    02:45 PM
    Starting update of app: kindle-2008, version: 1
    02:45 PM Getting current resource limits.
    Traceback (most recent call last):
    File “appcfg.py”, line 131, in
    run_file(__file__, globals())
    File “appcfg.py”, line 127, in run_file
    execfile(_PATHS.script_file(script_name), globals_)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5334, in
    main(sys.argv)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5325, in main
    result = AppCfgApp(argv).Run()
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2963, in Run
    self.action(self)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 4991, in __call__
    return method()
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3730, in Update
    self.UpdateUsingSpecificFiles()
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3722, in UpdateUsingSpecificFiles
    self.UpdateVersion(rpcserver, self.basepath, module_yaml, file_name)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3698, in UpdateVersion
    return appversion.DoUpload(paths, openfunc)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2385, in DoUpload
    self.error_fh)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 468, in GetResourceLimits
    resource_limits.update(_GetRemoteResourceLimits(logging_context))
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 438, in _GetRemoteResourceLimits
    yaml_data = logging_context.Send(‘/api/appversion/getresourcelimits’)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 1724, in Send
    result = self.rpcserver.Send(url, payload=payload, **kwargs)
    File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py”, line 409, in Send
    f = self.opener.open(req)
    File “C:\python27\lib\urllib2.py”, line 429, in open
    response = self._open(req, data)
    File “C:\python27\lib\urllib2.py”, line 447, in _open
    ‘_open’, req)
    File “C:\python27\lib\urllib2.py”, line 407, in _call_chain
    result = func(*args)
    File “C:\python27\lib\urllib2.py”, line 1241, in https_open
    context=self._context)
    TypeError: do_open() got an unexpected keyword argument ‘context’

    这是什么情况?