2016-03-04 13 views
28

त्रुटि के बिना "conda स्थापित --yes --file requirements.txt" हालांकि निम्न आदेशका उपयोग कर

conda install --yes --file requirements.txt

हैं के माध्यम से conda का उपयोग कर requirements.txt में संकुल स्थापित करने ही उपलब्ध संकुल स्थापित करें जरूरतों के मामले में एक पैकेज .txt यह एक "ऐसा कोई पैकेज त्रुटि" एक नीचे दिखाया गया है जैसे फेंकता है तो उपलब्ध नहीं है:

Using Anaconda Cloud api site https://api.anaconda.org

Fetching package metadata: ....

Error: No packages found in current linux-64 channels matching: nimfa ==1.2.3

You can search for this package on anaconda.org with

anaconda search -t conda nimfa ==1.2.3 

एक त्रुटि फेंकने की बजाय, यह इस व्यवहार को बदलने के लिए इस तरह है कि यह में सभी उपलब्ध संकुल को स्थापित करता है संभव है requi rements.txt और उन लोगों के लिए चेतावनी फेंकता है जो उपलब्ध नहीं हैं?

मुझे यह पसंद आएगा क्योंकि, पैकेज निमफा जो त्रुटि कहता है वह उपलब्ध नहीं है, पाइप स्थापित किया जा सकता है। इसलिए यदि मैं अनुपलब्ध पैकेजों के लिए चेतावनी फेंकने के लिए conda install --yes --file requirements.txt के व्यवहार को बदल सकता हूं, तो मैं इसे 0traमें .travis.yml में कमांड का पालन कर सकता हूं, इसलिए ट्रैविससीआई इसे उपलब्ध स्थान पर स्थापित करने का प्रयास करता है।

उत्तर

57

मैं सिर्फ फ़ाइल

$ while read requirement; do conda install --yes $requirement; done < requirements.txt

संपादित की लाइनों पर पुनरावृत्ति समाप्त हो गया: आप एक पैकेज पिप का उपयोग कर स्थापित करने के लिए अगर यह conda के माध्यम से उपलब्ध नहीं है चाहते हैं, तो यह एक स्थान दें :

$ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt

+2

धन्यवाद, किसी के लिए भी छोटे संकेत यह सुनिश्चित करें कि आपके requirements.txt, एक नई पंक्ति के साथ समाप्त होता बनाने का उपयोग कर ताकि अंतिम पैकेज –

+1

में पढ़ा जाता है क्या स्वचालित रूप से 'पाइप इंस्टॉल' पैकेजों का एक तरीका है जो 'conda install' का उपयोग करके उपलब्ध नहीं हैं, जबकि पुनरावृत्त करते हैं? – delusionX

+2

@delusionX, मैंने जवाब बढ़ा दिया है। –

2

आप इस रूप में this

में उल्लेख कर सकते हैं

निर्यात फ़ाइल .yml को

conda env export > freeze.yml 

पुन: पेश करने के लिए: इस के लिए

conda env create -f freeze.yml 
संबंधित मुद्दे