私はGAEpython2.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のローカルコピーを変更しますが、次にアップグレードするときにそれが消去されます。