我正在构建一个 GAE python 2.7 应用程序。在调试过程中,我注意到 webapp2 使用的 Request 类是基于 webob 0.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 副本,但下次升级时它会被清除。