2013-12-13 4 views
7

उदाहरण के लिए निम्नलिखित bin/buildout -Nvvआप कैसे जानते हैं कि कौन सा अजगर अंडे buildout में एक बाधा लागू कर रहा है?

... 
Getting required 'grokcore.component>=2.5' 
    required by five.grok 1.3.2. 
    required by grokcore.viewlet 1.11. 
Picked: grokcore.component = 2.5 
Getting required 'grokcore.annotation' 
    required by five.grok 1.3.2. 
Picked: grokcore.annotation = 1.3 
The constraint, 0.4, is not consistent with the requirement, 'five.localsitemanager>2.0dev'. 
While: 
    Installing instance. 
Error: Bad constraint 0.4 five.localsitemanager>2.0dev 

बाधा five.localsitemanager>2.0dev साथ बनाया गया है (https://github.com/zopefoundation/grokcore.annotation/blob/master/setup.py देखें) grokcore.annotation द्वारा लागू न की प्रतीत नहीं होता है लेकिन यह कैसे मैं जो अंडा वास्तव में इस लागू कर रहा है पता लगाऊं?

+0

क्या यह अभी भी प्रासंगिक है? यदि नहीं, तो शायद सवाल बंद करने का समय है ... –

+0

समस्या अभी भी समय-समय पर होती है, इसलिए सवाल खुला रहता है। संकुल बदलते हैं, लेकिन समस्या बनी हुई है। –

+0

http://stackoverflow.com/questions/29827258/find-requirement-specs-in-a-plone-buildout-setup (eggds) – sunew

उत्तर

6

मुझे पता है कि यह एक बहुत पुराना सवाल है, लेकिन मुझे कल भी यही समस्या थी और my colleague समस्या को हल करने का एक तरीका मिला। तो मैंने सोचा कि मैं इसे यहां पोस्ट कर सकता हूं।

आपके सभी बिल्डआउट अंडे या तो आपके प्रोजेक्ट में eggs फ़ोल्डर में या .buildout फ़ोल्डर में आपके घर फ़ोल्डर में विकास अंडे समेत हैं। प्रत्येक अंडे में आपको अंडे की आवश्यकताओं के साथ requires.txt फ़ाइल मिल जाएगी। इसका अर्थ यह है कि आप यह निर्धारित करने के लिए कि कौन सा पैकेज लागू कर रहा है, विशिष्ट बाधा के लिए .buildout/eggs फ़ोल्डर पर एक खोज/grep कर सकता है।

तो अपने मामले में मेरा सुझाव है कि आप (मेरे मामले ~/.buildout/eggs में) अंडे निर्देशिका के लिए जाना और फिर कार्य करें:

find .|grep requires.txt|xargs grep 2.0dev 

कि अंडा कि बाधा को लागू है खोजना चाहिए।

मेरे मामले में मैं Django 1.7 में अपग्रेड कर रहा था और बाधा 'Django >= 1.4, < 1.7' के साथ एक पैकेज था। इसलिए find .|grep requires.txt|xargs grep 1.7 को निष्पादित करने से समस्याग्रस्त अंडे मिला।

+0

पर मेरा उत्तर देखें: एक ~ ~ .buildout/अंडे/'फ़ोल्डर केवल तभी प्रयोग किया जाता है जब आप इसे सक्षम करते हैं। अन्यथा आपको परियोजना निर्देशिका के अंदर 'अंडे/'फ़ोल्डर में देखना होगा। –

+0

दूसरी टिप्पणी: '<1.7' समस्याग्रस्त हो सकता है क्योंकि इसे' <1.7' (रिक्त स्थान के बिना) भी लिखा जा सकता है। विभिन्न 'ईजीजी-आईएनएफओ/requ.txt' फ़ाइलों में पैकेज नाम की खोज तेज है। कुछ ढूंढें जैसे 'ढूंढें। | grep requ.txt | xargs grep -i-package-name ' –

+1

अतिरिक्त @ @ reinout-van-rees के लिए धन्यवाद! मैंने बस अपने '.bash_history' में देखा और यह वास्तव में वह आदेश है जिसका आपने मेरे' .buildout/अंडे 'फ़ोल्डर पर उपयोग किया था। मुझे लगता है कि मैं कल काफी करीब ध्यान नहीं दे रहा था। मैं अपना जवाब अपडेट करूंगा। – Heyl1

संबंधित मुद्दे