App Engine/Python 是否支持的资源汇总?
关于GAE/J的框架、语言和库的信息可以在这里找到:http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
那GAE/Py有没有类似的页面呢?
1 个回答
4
来自 http://code.google.com/appengine/docs/python/overview.html
这个Python运行环境使用的是Python 2.5.2版本。
在这个Python运行环境中,所有的代码必须是纯Python的,不能包含任何需要编译的C扩展或其他代码。
这个环境里有Python的标准库。不过,有些模块被禁用了,因为它们的一些核心功能在App Engine上不支持,比如网络功能或者写入文件系统。此外,os模块是可以用的,但一些不被支持的功能是被禁用的。如果你试图导入一个不支持的模块或者使用不支持的功能,系统会报错。
标准库中的一些模块被替换或定制,以便能在App Engine上正常工作。例如:
* cPickle is aliased to pickle. Features specific to cPickle are not supported.
* marshal is empty. An import will succeed, but using it will not.
* These modules are similarly empty: imp, ftplib, select, socket
* tempfile is disabled, except for TemporaryFile which is aliased to StringIO.
* logging is available and its use is highly encouraged! See below.
除了Python的标准库和App Engine的库之外,这个运行环境还包括以下第三方库:
* Django 0.96.1
* WebOb 0.9
* PyYAML 3.05
你可以通过把代码放在你的应用目录中,来包含其他纯Python库。如果你在应用目录中创建一个指向模块目录的符号链接,appcfg.py会跟随这个链接,把模块包含到你的应用中。
Python模块的包含路径包括你应用的根目录(也就是包含app.yaml文件的目录)。你在应用根目录中创建的模块,可以通过根目录的路径来访问。别忘了在子目录中创建init.py文件,这样Python才能把子目录识别为包。