2016-02-12 12 views
10

मेरे पास कुछ पाइथन परियोजनाएं हैं जो एक दूसरे पर निर्भर हैं। मेरे पास प्रत्येक परियोजना के लिए अलग-अलग रिलीज संस्करण हैं और विभिन्न परियोजनाएं किसी विशेष परियोजना के विभिन्न रिलीज़ संस्करणों पर निर्भर हो सकती हैं। मैं एक आंतरिक सर्वर पर अपना स्वयं का कोंडा भंडार बनाना चाहता हूं जहां मैं इन परियोजनाओं के रिलीज को कोंडा पैकेज के रूप में धक्का दे सकता हूं और अन्य परियोजनाएं वहां से आवश्यक संस्करण स्थापित कर सकती हैं। क्या यह संभव है? यदि हां, तो कैसे?मैं अपना निजी कोंडा भंडार कैसे होस्ट कर सकता हूं?

उत्तर

19

आप अपने निजी रेपो के रूप में conda custom channel का उपयोग कर सकते हैं। कंडी पैकेज बनाने के लिए आवश्यक कदम "कोंडा बिल्ड" का उपयोग करना है, फिर उस पैकेज को अपने कस्टम चैनल (एक निर्देशिका) में कॉपी करें, और अब उस निर्देशिका पर कोंडा इंडेक्स चलाएं। फिर आप "conda install -c" का उपयोग करके इस चैनल से संकुल को संस्थापित कर सकते हैं।

  • चैनल बनाएं:

    एक उदाहरण है, और अधिक विस्तार में, चलो linux -64 मान लें
    mkdir -p /tmp/my-conda-channel/linux-64

  • अब आप कुछ परियोजना एक meta.yaml साथ "abc" नाम दिया यह सोचते हैं और build.sh कुछ संस्करण एक्स के साथ अब आप इसे बनाने:

    conda build abc

  • यह ख होगा अपनी conda-bld निर्देशिका में tar.bz2 फ़ाइल uild। उदाहरण के लिए: ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2। सूचकांक अब

    cp ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2 /tmp/my-conda-channel/linux-64/

  • यह: अपने चैनल के लिए उस फ़ाइल को कॉपी

    conda index /tmp/my-conda-channel/linux-64/

अब आप अपने कस्टम चैनल के लिए है कि पैकेज अपलोड कर दिया है। आप कार्य करके अपना conda वातावरण में से किसी में इसे स्थापित कर सकते हैं:

conda install -c file://tmp/my-conda-channel/ abc=X 

कहाँ, याद, एक्स संस्करण इसलिए है, एक बार आप अपने चैनल में अधिक संस्करणों डालने के बाद, आप विशिष्ट संस्करण स्थापित कर सकते हैं।

यदि आपके पास ऐसी परियोजना है जो "एबीसी" के एक्स संस्करण पर निर्भर करती है तो हम इसे केवल उन परियोजनाओं में जोड़ते हैं meta.yaml। उदाहरण:

package: 
    name: some-other-project 
    version: 0.1 
requirements: 
    build: 
    - abc X 
... 

एक बार जब आप इस चैनल यह शायद एक अच्छा विचार है जिससे यह अपने आप की खोज हो जाएगा अपने .condarc फ़ाइल में जोड़ने के लिए बनाया है। उदाहरण के लिए:

channels: 
- file://tmp/my-conda-channel/ 
- defaults 
+1

ऐसा करने का कोई तरीका यह है कि आपका चैनल http पर पहुंच योग्य है? – ostrokach

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