Ali*_*eza 17 python google-app-engine
我尝试通过appcfg.py在Google App Engine上更新项目:
C:\> "C:\Program Files (x86)\Google\google_appengine\appcfg.py" update c:\secondApp
Run Code Online (Sandbox Code Playgroud)
但我立即得到以下错误(顶行被忽略):
File "C:\Python27\lib\urllib2.py", line 1240, in https_open
context=self._context)
TypeError: do_open() got an unexpected keyword argument 'context'
Run Code Online (Sandbox Code Playgroud)
我决定深入研究文件urllib2.py
并找到问题所在.在几分钟的代码审查之后,我得出这样的结论:接受名为参数的重载context
不存在.所以,我更改了原始代码段:
def https_open(self, req):
return self.do_open(httplib.HTTPSConnection, req,
context=self._context)
Run Code Online (Sandbox Code Playgroud)
至
def https_open(self, req):
return self.do_open(httplib.HTTPSConnection, req)
Run Code Online (Sandbox Code Playgroud)
和瞧!它有效(虽然出现了关于身份验证的另一个问题,但第一个问题得到了解决).但是很奇怪,在正式版本中存在这样的错误,而很可能其他人遇到了同样的问题.令人惊讶的是,我找不到其他人报告的这个问题!
模块有什么问题吗?我是否混合了错误版本的已安装软件包?有帮助吗?
我的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
Run Code Online (Sandbox Code Playgroud)
小智 26
半小时前我遇到了同样的问题..这实际上与urllib2文件无关,它与身份验证有关.这为我修好了..
将appcfg.py与--oauth2标志一起使用.试试这个,appcfg.py --oauth2 update/path/to/your/app.在您第一次看到浏览器窗口时,您需要允许其访问您的帐户.然后,您无需输入电子邮件和密码即可部署应用程序.
我希望这有帮助.很高兴在这里发布我的第一个答案!:)
谢谢,米格尔
归档时间: |
|
查看次数: |
7041 次 |
最近记录: |