gpt4 book ai didi

google-app-engine - WebOb 0.9 在 WebOb 1.1.1 之前位于 sys.path 上

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:58 24 4
gpt4 key购买 nike

我正在构建一个 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 的本地副本,但下次升级时它会被清除。

最佳答案

1) 你可以使用devappserver2。 (devappserver2 目前处于试验阶段,不支持 Python 2.5)

import devappserver2
devappserver2.fix_sys_path()

devappserver2.fix_sys_path 将 webob-1.2.3、webapp2-2.5.1 和 jinja2-2.6 添加到 sys.path。

https://code.google.com/p/appengine-devappserver2-experiment/

2) 提供 Google App Engine 1.7.6 预发布 SDK。

https://groups.google.com/forum/?fromgroups=#!topicsearchin/google-appengine/webob/google-appengine/qyT3mvTd2RU

它解决了这个问题。

关于google-app-engine - WebOb 0.9 在 WebOb 1.1.1 之前位于 sys.path 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11354523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com