开始Google App Engine之前应该做的事
六月 9th, 2008
虽然Google已经尽可能使GAE的安装和运行变得简单,但是自本博开始介绍GAE以来,还是不断有朋友反映入门教程中的例子无法运行。而有时候其实并不是很复杂的问题,所以这一篇准备说一说,在开始Google App Engine项目之前,我们应该预先做些什么准备工作。(本文以windows下的安装为例,因为我觉得既然是能搞得定unix或mac之类的用户,大概也不需要看我在这里罗嗦了)
- Google App Engine目前只支持Python环境,所以你先要安装好你的Python运行环境。到Python官方网站下载window版本,(当前最新版本是2.5.2)这是一个标准的windows安装程序,按照提示安装就可以了。安装完后,进入命令提示行,敲入python,应该显示如下:
Python 2.5.2 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
- 如果python命令提示无效命令,那么有可能是系统无法找到相关文件,你可以将Python的安装路径加入到系统的path路径中。
- 请检查.py文件是否已经和python.exe关联起来了,如果没有,您可能需要重新启动一下机器
- 下载 Google App Engine SDK Windows installer 并安装
- 添加系统环境变量‘APP_ENGINE_HOME’ 设置它的值为GAE的安装路径 (通常安装路径为C:\AppEngine)
- 将%APPENGINE%\;%APPENGINE%\lib;%APPENGINE%\lib\yaml\lib;%APPENGINE%\lib\webob;加入到系统PATH变量或PYTHONPATH变量里面,以方便自己可以在任何地方运行GAE控制程序
2010-07-17 23:56:32,819 ERROR appcfg.py:1573 An unexpected error occurred. Abort
ing.
Traceback (most recent call last):
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1540, in DoU
pload
missing_files = self.Begin()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1310, in Beg
in
version=self.version, payload=self.config.ToYAML())
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 358,
in Send
self._Authenticate()
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 404,
in _Authenticate
self.cookie_jar.save()
File "C:\Python25\lib\_MozillaCookieJar.py", line 118, in save
f = open(filename, "w")
IOError: [Errno 13] Permission denied: 'C:\\Users\\vivalavida/.appcfg_cookies'
Traceback (most recent call last):
File "C:\google_appengine\appcfg.py", line 68, in
run_file(__file__, globals())
File "C:\google_appengine\appcfg.py", line 64, in run_file
execfile(script_path, globals_)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2766, in <mo
dule>
main(sys.argv)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2757, in mai
n
result = AppCfgApp(argv).Run()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1768, in Run
self.action(self)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2628, in __c
all__
return method()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2075, in Upd
ate
lambda path: open(os.path.join(basepath, path), 'rb'))
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1540, in DoU
pload
missing_files = self.Begin()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1310, in Beg
in
version=self.version, payload=self.config.ToYAML())
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 358,
in Send
self._Authenticate()
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 404,
in _Authenticate
self.cookie_jar.save()
File "C:\Python25\lib\_MozillaCookieJar.py", line 118, in save
f = open(filename, "w")
IOError: [Errno 13] Permission denied: 'C:\\Users\\vivalavida/.appcfg_cookies'
c:\google_appengine>appcfg.py update lazy-fish/
Application: lazy-fish; version: 1.
Server: appengine.google.com.
Scanning files on local disk.
Initiating update.
2010-07-17 23:59:30,536 WARNING appengine_rpc.py:399 ssl module not found.
Without the ssl module, the identity of the remote host cannot be verified, and
connections may NOT be secure. To fix this, please install the ssl module from
http://pypi.python.org/pypi/ssl .
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl .
Email: mylusty@gmail.com
Password for mylusty@gmail.com:
2010-07-17 23:59:57,819 ERROR appcfg.py:1573 An unexpected error occurred. Abort
ing.
Traceback (most recent call last):
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1540, in DoU
pload
missing_files = self.Begin()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1310, in Beg
in
version=self.version, payload=self.config.ToYAML())
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 358,
in Send
self._Authenticate()
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 404,
in _Authenticate
self.cookie_jar.save()
File "C:\Python25\lib\_MozillaCookieJar.py", line 118, in save
f = open(filename, "w")
IOError: [Errno 13] Permission denied: 'C:\\Users\\vivalavida/.appcfg_cookies'
Traceback (most recent call last):
File "C:\google_appengine\appcfg.py", line 68, in
run_file(__file__, globals())
File "C:\google_appengine\appcfg.py", line 64, in run_file
execfile(script_path, globals_)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2766, in <mo
dule>
main(sys.argv)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2757, in mai
n
result = AppCfgApp(argv).Run()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1768, in Run
self.action(self)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2628, in __c
all__
return method()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2075, in Upd
ate
lambda path: open(os.path.join(basepath, path), 'rb'))
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1540, in DoU
pload
missing_files = self.Begin()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1310, in Beg
in
version=self.version, payload=self.config.ToYAML())
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 358,
in Send
self._Authenticate()
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 404,
in _Authenticate
self.cookie_jar.save()
File "C:\Python25\lib\_MozillaCookieJar.py", line 118, in save
f = open(filename, "w")
IOError: [Errno 13] Permission denied: 'C:\\Users\\vivalavida/.appcfg_cookies'
c:\google_appengine>appcfg.py update lazy-fish
Application: lazy-fish; version: 1.
Server: appengine.google.com.
Scanning files on local disk.
Initiating update.
2010-07-18 00:09:40,150 WARNING appengine_rpc.py:399 ssl module not found.
Without the ssl module, the identity of the remote host cannot be verified, and
connections may NOT be secure. To fix this, please install the ssl module from
http://pypi.python.org/pypi/ssl .
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl .
Email: mylusty@gmail.com
Password for mylusty@gmail.com:
2010-07-18 00:09:58,055 ERROR appcfg.py:1573 An unexpected error occurred. Abort
ing.
Traceback (most recent call last):
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1540, in DoU
pload
missing_files = self.Begin()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1310, in Beg
in
version=self.version, payload=self.config.ToYAML())
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 358,
in Send
self._Authenticate()
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 404,
in _Authenticate
self.cookie_jar.save()
File "C:\Python25\lib\_MozillaCookieJar.py", line 118, in save
f = open(filename, "w")
IOError: [Errno 13] Permission denied: 'C:\\Users\\vivalavida/.appcfg_cookies'
Traceback (most recent call last):
File "C:\google_appengine\appcfg.py", line 68, in
run_file(__file__, globals())
File "C:\google_appengine\appcfg.py", line 64, in run_file
execfile(script_path, globals_)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2766, in <mo
dule>
main(sys.argv)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2757, in mai
n
result = AppCfgApp(argv).Run()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1768, in Run
self.action(self)
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2628, in __c
all__
return method()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 2075, in Upd
ate
lambda path: open(os.path.join(basepath, path), 'rb'))
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1540, in DoU
pload
missing_files = self.Begin()
File "C:\google_appengine\google\appengine\tools\appcfg.py", line 1310, in Beg
in
version=self.version, payload=self.config.ToYAML())
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 358,
in Send
self._Authenticate()
File "C:\google_appengine\google\appengine\tools\appengine_rpc.py", line 404,
in _Authenticate
self.cookie_jar.save()
File "C:\Python25\lib\_MozillaCookieJar.py", line 118, in save
f = open(filename, "w")
IOError: [Errno 13] Permission denied: 'C:\\Users\\vivalavida/.appcfg_cookies'
E:\Google\helloworld>dev_appserver.py .
INFO 2009-02-10 08:45:46,528 appcfg.py] Server: appengine.google.com
INFO 2009-02-10 08:45:46,543 appcfg.py] Checking for updates to the SDK.
WARNING 2009-02-10 08:45:47,496 datastore_file_stub.py] Could not read datastor
e data from c:\docume~1\fuhao\locals~1\temp\dev_appserver.datastore
WARNING 2009-02-10 08:45:47,513 datastore_file_stub.py] Could not read datastor
e data from c:\docume~1\fuhao\locals~1\temp\dev_appserver.datastore.history
报以上错误是咋回事?还需要啥权限?以上是错误消息的前一部分,上次发贴是后一部分。
Traceback (most recent call last):
File "D:\Program Files\Google\google_appengine\dev_appserver.py", line 50, in
execfile(script_path, globals())
File "D:\Program Files\Google\google_appengine\google/appengine/tools/dev_apps
erver_main.py", line 351, in
sys.exit(main(sys.argv))
File "D:\Program Files\Google\google_appengine\google/appengine/tools/dev_apps
erver_main.py", line 330, in main
require_indexes=require_indexes)
File "D:\Program Files\Google\google_appengine\google\appengine\tools\dev_apps
erver.py", line 2645, in CreateServer
return BaseHTTPServer.HTTPServer((serve_address, port), handler_class)
File "D:\Python25\lib\SocketServer.py", line 330, in __init__
self.server_bind()
File "D:\Python25\lib\BaseHTTPServer.py", line 101, in server_bind
SocketServer.TCPServer.server_bind(self)
File "D:\Python25\lib\SocketServer.py", line 341, in server_bind
self.socket.bind(self.server_address)
File "", line 1, in bind
socket.error: (10013, 'Permission denied')
可以把这句加到2里面:set path=%path%;C:\python25