【问题标题】:Unexpected keyword argument "context" when using appcfg.py使用 appcfg.py 时出现意外的关键字参数“上下文”
【发布时间】:2015-02-12 08:28:01
【问题描述】:

我尝试通过 appcfg.py 更新 Google App Engine 上的项目:

C:\> "C:\Program Files (x86)\Google\google_appengine\appcfg.py" update c:\secondApp

但我立即收到以下错误(忽略顶行):

File "C:\Python27\lib\urllib2.py", line 1240, in https_open
    context=self._context)
TypeError: do_open() got an unexpected keyword argument 'context'

我决定深入研究urllib2.py 文件并找出问题所在。经过几分钟的代码审查,我得出这样的结论,即不存在接受名为context 的参数的重载。于是,我把原来的代码改成了sn-p:

def https_open(self, req):
    return self.do_open(httplib.HTTPSConnection, req,
        context=self._context) 

def https_open(self, req):
    return self.do_open(httplib.HTTPSConnection, req)

瞧!它有效(尽管出现了另一个关于身份验证的问题,但第一个问题得到了解决)。但是很奇怪,在正式发布中存在这样的错误,而其他人很可能遇到了同样的问题。令人惊讶的是,我找不到其他人报告的这个问题!

模块有什么问题吗?我是否混合了已安装软件包的错误版本?有什么帮助吗?

我的 Google App Engine SDK 版本:1.9.17 x64

我安装的 Python 版本:2.7.9 x64

我的平台:Windows 8.1 x64

我不熟悉 Python :D

解决方案:

正如 Migel Tissera 所说,问题在于身份验证。但是我尝试了他提出的命令并得到了同样的错误。幸运的是,我执行了以下命令,成功了! (我也添加了 --noauth_local_webserver 和 --no_cookies 开关):

appcfg.py --noauth_local_webserver --oauth2 --skip_sdk_update_check --no_cookies update c:\secondApp

【问题讨论】:

  • 这也可能是GAE on 2.7.9的错误
  • 您是否为此 Google 帐户启用了两步验证?
  • @whiteshooz 不,我没有
  • code.google.com/p/googleappengine/issues/detail?id=11536 的解决方法对我有用。只需要更改三行代码,瞧!我的 GAE/P 现已启动!
  • 似乎已在当前的 SDK 版本 1.9.18 中得到修复——您能否检查升级 SDK 是否会解决此问题?抱歉,我们花了一段时间来解决这个问题,但我认为/希望它现在已经修复了......!感谢您的提醒顺便说一句:-)

标签: python google-app-engine


【解决方案1】:

大约半小时前我遇到了同样的问题。它实际上与 urllib2 文件无关,它与身份验证有关。这为我解决了它..

appcfg.py--oauth2 标志一起使用。试试这个,appcfg.py --oauth2 update /path/to/your/app。第一次您将看到需要允许访问您的帐户的浏览器窗口。然后,您无需输入电子邮件和密码即可部署您的应用。

我希望这会有所帮助。很高兴在这里发布我的第一个答案! :)

谢谢, 米格尔

【讨论】:

  • 你知道如何让远程api客户端接受OAuth2吗?目前,调用远程 shell 会出现同样的错误(即 $GAE_SDK_ROOT/remote_api_shell.py -s .appspot.com),不幸的是。)
  • 谢谢兄弟。它帮助了我。
  • 您的回答很好,但在我的情况下不起作用。查看更新。我赞成。
【解决方案2】:

使用不兼容的 Appengine SDK 版本时也可能出现此错误。

在我的情况下,升级 SDK 修复了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2022-10-18
    • 2014-02-24
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多