GAE上传程序失败的解决办法
以前弄过micolog,后来因为appspot.com这个域名被封锁的原因,很久没有关注gae了,今天心血来潮想把自己的域名绑定appspot.com,所以打算把主题micolog的主题改下。可是后来上传的时候一直碰到问题,试了很多种方法还是没有解决。配置绝对没有问题,本地调试一切正常。
python使用的是2.7.2,有人说用python 2.5才可以上传。后来把python 2.7卸载然后安装2.5后,还是失败。所以不是python版本问题。
具体错误提示信息如下:
2011-09-11 10:13:01 Running command: "['D:\\Python\\pythonw.exe', '-u', 'D:\\GAE\\appcfg.py', '--no_cookies', u'--email=zhangningqi1987@gmail.com', '--passin', 'update', u'D:\\GAE\\templates\\micolog']"
Application: chekianglog; version: 1
Host: appengine.google.com
Traceback (most recent call last):
File "D:\GAE\appcfg.py", line 76, in <module>
run_file(__file__, globals())
File "D:\GAE\appcfg.py", line 72, in run_file
execfile(script_path, globals_)
File "D:\GAE\google\appengine\tools\appcfg.py", line 3708, in <module>
main(sys.argv)
File "D:\GAE\google\appengine\tools\appcfg.py", line 3699, in main
result = AppCfgApp(argv).Run()
File "D:\GAE\google\appengine\tools\appcfg.py", line 2345, in Run
self.action(self)
File "D:\GAE\google\appengine\tools\appcfg.py", line 3484, in __call__
return method()
File "D:\GAE\google\appengine\tools\appcfg.py", line 2745, in Update
app_summary = self.UpdateVersion(rpcserver, self.basepath, appyaml)
File "D:\GAE\google\appengine\tools\appcfg.py", line 2728, in UpdateVersion
updatecheck.CheckForUpdates()
File "D:\GAE\google\appengine\tools\appcfg.py", line 463, in CheckForUpdates
api_versions=version['api_versions'])
File "D:\GAE\google\appengine\tools\appengine_rpc.py", line 366, in Send
response = f.read()
File "D:\Python\lib\socket.py", line 351, in read
data = self._sock.recv(rbufsize)
File "D:\Python\lib\httplib.py", line 561, in read
s = self.fp.read(amt)
File "D:\Python\lib\socket.py", line 380, in read
data = self._sock.recv(left)
File "D:\Python\lib\ssl.py", line 232, in recv
return self.read(buflen)
File "D:\Python\lib\ssl.py", line 151, in read
return self._sslobj.read(len)
ssl.SSLError: The read operation timed out
2011-09-11 10:13:16 (Process exited with code 1)
You can close this window now.
最后的解决办法,原来是网络问题(可恶的G.F.W),需要设置一下代理才能上传成功。
比如我的设置是这样的:windows运行窗口输入cmd,打开dos界面,进入到GAE的安装目录。
set HTTP_PROXY=http://127.0.0.1:8118
set HTTPS_PROXY=http://127.0.0.1:8118
然后再上传:
appcfg.py update myappname
一切正常。回头看看提示信息,原来是这个原因“ssl.SSLError: The read operation timed out”,英语没学好的孩子伤不起啊。。。