2011-12-21 195 views
3

安裝爲Plone getpaid,幾個發行抱怨getpaid版本衝突

我們已經有了:egg.name 0.0 但another.egg 1.2.3要求 'egg.name> = 4.5.6'

我已成功地通過釘扎請求的版本,直到前進:

Error: There is a version conflict. 
We already have: zope.component 3.5.1 
but zope.site 3.9.2 requires 'zope.component>=3.8.0'. 
but zope.browserresource 3.12.0 requires 'zope.component>=3.8.0'. 

釘扎zope.component到3.8.0提供了以下:

Error: There is a version conflict. 
We already have: zope.component 3.8.0 
but five.localsitemanager 1.3 requires 'zope.component<3.6dev'. 

我怎樣才能避開這個(catch 22)?

我的擴建:http://www.pastie.org/3050771

回答

2

在你的buildout使用KGS(已知良好的集):

eg

[buildout] 
extends = http://good-py.appspot.com/release/getpaid/0.10.4 
versions = versions 
+0

這將擴展替換 extends = versions.cfg? – 2011-12-22 01:24:12

+0

將我的buidout內容與此kgs的內容合併仍然會產生:我們已經有:zope.location 0.0 但zope.intid 3.7.2需要'zope.location> = 3.5.4'。 http://www.pastie.org/3055193 – 2011-12-22 01:40:13

+0

使用KGS,只能使用KGS。換句話說,不要合併構建。直到您能夠完成成功的運行,才使用只有KGS的擴建。或者,如果喜歡,粘貼bin/buildout -vvvv的輸出。 – aclark 2011-12-24 03:52:31

4

在一般情況下,是什麼在這種情況下,最好是把它一步一步來。訣竅是這一行添加到您的[擴建]部分:

allow-picked-versions = false 

這告訴zc.buildout時,看到一個包,要求不固定立即退出。然後你可以去http://pypi.python.org並搜索那個軟件包,看看你能不能找出哪個版本適合你的其他軟件包,尤其是你的Plone版本。在沒有固定zope。*包的Plone 3上時,通常最好將其固定到可以找到的最舊版本。

在這種特定情況下,那些zope.site和zope.browserresource版本是相當新的,並且需要一個太新的zope.component版本。

這是未經測試,但這些引腳威力工作(無擔保):

zope.site = 3.5.1 
zope.component = 3.5.1 
zope.browserresource = 3.9.0 
+0

allow-picked-versions顯示:While: 正在安裝。 加載擴展。 獲取'buildout.dumppickedversions'的發行版。 錯誤:挑選:buildout.dumppickedversions = 0.4 – 2011-12-22 01:27:37

+1

這是完美的。現在,您將'buildout.dumppickedversions = 0.4'添加到您的版本列表中,並再次運行bin/build並以相同的方式修復下一個錯誤。僅限於:對於每個打印了此錯誤的包,您應該花點時間確定拾取的版本(始終是最新版本)是否真的可以與其他構建工作。 – maurits 2011-12-22 15:02:52

+1

zope.authentication 3.7.0(最低版本)需要'zope.component> = 3.6.0'。 five.localsitemanager 1.3需要zope.component <3.6。升級five.localsitemanager到2然後提示更高版本的zope2,並且每當我改變時,我得到錯誤... http://www.pastie.org/3152711 – 2012-01-09 06:39:53