App Engine/Python 是否支持的资源汇总?

1 投票
1 回答
582 浏览
提问于 2025-04-15 12:12

关于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才能把子目录识别为包。

撰写回答