我正在构建一个GAE python 2.7应用程序。在调试过程中,我注意到webapp2使用的请求类基于Webbob0.9中的请求类,而不是我在app.yaml中指定的版本:
libraries:
- name: webob
version: "1.1.1"
- name: webapp2
version: "2.5.1"
- name: jinja2
version: "2.6"问题似乎是dev_appserver.py修改了sys.path,在读取app.yaml之前添加了各种第三方库,因此不知道要添加到sys.path的版本(如果有)。例如:
EXTRA_PATHS = [
DIR_PATH,
os.path.join(DIR_PATH, 'lib', 'antlr3'),
os.path.join(DIR_PATH, 'lib', 'django_0_96'),
os.path.join(DIR_PATH, 'lib', 'fancy_urllib'),
os.path.join(DIR_PATH, 'lib', 'ipaddr'),
os.path.join(DIR_PATH, 'lib', 'jinja2'),
os.path.join(DIR_PATH, 'lib', 'protorpc'),
os.path.join(DIR_PATH, 'lib', 'PyAMF'),
os.path.join(DIR_PATH, 'lib', 'markupsafe'),
os.path.join(DIR_PATH, 'lib', 'webob_0_9'),
os.path.join(DIR_PATH, 'lib', 'webapp2'),
os.path.join(DIR_PATH, 'lib', 'yaml', 'lib'),
os.path.join(DIR_PATH, 'lib', 'simplejson'),
os.path.join(DIR_PATH, 'lib', 'google.appengine._internal.graphy'),
]我正在寻找变通的想法;现在我将修改我的dev_appserver.py的本地副本,但这将在下一次升级时被清除。
发布于 2013-03-17 08:08:33
1)可以使用devappserver2。(devappserver2现在是实验性的,但不支持Python2.5)
import devappserver2
devappserver2.fix_sys_path()在sys.path中添加webob-1.2.3、webapp2-2.5.1和jinja2-2.6的devappserver2.fix_sys_path。
https://code.google.com/p/appengine-devappserver2-experiment/
或
2) Google App Engine 1.7.6预发行版SDK。
它解决了这个问题。
https://stackoverflow.com/questions/11354523
复制相似问题