2012-08-10 143 views
3

我设法在Google App Engine SDK 1.7上运行Pyramid 1.2 WSGI应用程序。但是,我目前的项目使用了几个新的Pyramid 1.3功能,并且我陷入了WebOb版本问题。这里的错误消息:Pyramid 1.3和Google App Engine 1.7

VersionConflict: (WebOb 1.1.1 (/home/matt/Python/google_appengine/lib/webob_1_1_1), Requirement.parse('WebOb>=1.2dev') 

有什么我能做的还是必须等待新的GAE版本?

+0

我使用1.3.2的金字塔和appengine SDK 1.7。 (目前只在开发中)。你正在使用哪些功能强制更新版本的webob?它也可能只是一个安装问题。我使用http://pypi.python.org/pypi/pyramid_appengine/0.6进行了完全独立的安装,但是一旦安装完成,将符号链接创建回我的项目中已安装的库,而不是获取所有内容。 – 2012-08-10 11:51:25

+1

我相信诀窍是将webob与您的项目进行部署,这基本上是pyramid_appengine的功能。 sdk已经慢慢地从webob上消失了,所以你应该很好,但是正如Martijn指出的那样,谷歌的官方说法是你不能。 – 2012-08-10 12:38:41

+0

Tim,我不知道哪些功能需要webob 1.2,但在我的setup.py中,如果我没有指定金字塔版本,则使用Pyramid 1.3.2,并且我得到webob VersionConflict异常。如果在setup.py中,我在需求部分使用金字塔== 1.2.6,它工作正常。我在Pyramid 1.3 changelog中注意到这一点: 金字塔现在取决于以下软件包版本:zope.interface> = 3.8.0,WebOb> = 1.2dev,repoze.lru> = 0.4,zope.deprecation> = 3.5.0,translationstring对于Python 3的兼容性,> = 0.4 我可以让金字塔1.3.2使用WebOb 1.1.1吗? – Matt234 2012-08-10 13:12:50

回答

2

一个相当可靠的方式来管理您的金字塔应用程序,它依赖于appengine是通过pyramid_appengine库生成一个框架项目,使用buildout

免责声明:我今年在pycon上写了这篇文章作为金字塔冲刺的一部分。

+0

谢谢,我用骨架来找到我做错了什么。 – Matt234 2012-08-21 15:51:31

0

您可以随时与你的应用程序中捆绑自己的WebOb版本:

在你的应用程序目录下执行:

wget http://pypi.python.org/packages/source/W/WebOb/WebOb-1.2.2.zip 
unzip WebOb-1.2.2.zip 
mv WebOb-1.2.2/webob . 
rm -fR WebOb-1.2.2* 

并重新部署应用程序。

+0

它没有为我工作。我最终修改了virtualenv中的lib/python2.7/site-packages/pyramid-1.3.2-py2.7.egg/EGG-INFO/requires.txt。我为WebOb> = 1.1.1更改了WebOb> = 1.2dev,它工作正常! – Matt234 2012-08-10 17:57:25

0

我在virtualenv中修改了lib/python2.7/site-packages/pyramid-1.3.2-py2.7.egg/EGG-INFO/requires.txt。我为WebOb> = 1.1.1更改了WebOb> = 1.2dev,它工作正常!

+0

这不会帮助,当你部署到appengine不幸 – 2012-08-15 15:23:24