django - मैं पीपी और एक आवश्यकता फ़ाइल का उपयोग कर विशिष्ट पैकेज कैसे अपग्रेड कर सकते हैं?




virtualenv pip (5)

मैं अपने Django परियोजनाओं के लिए, वर्चुअलenv में, एक आवश्यकता फ़ाइल के साथ पीआईपी का उपयोग कर रहा हूँ। मैं कुछ संकुल अपग्रेड करने की कोशिश कर रहा हूं, विशेष रूप से Django खुद, और मुझे स्रोत कोड विवादों के बारे में त्रुटि मिल रही है:

Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))

यह मेरी आवश्यकताओं फ़ाइल में 1.2.3 से 1.2.4 तक Django के संस्करण संख्या को अद्यतन करने के बाद है। मैं वास्तव में अपग्रेड करने के लिए इस कमांड का उपयोग कर रहा हूं:

pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>

मुझे कोई भी फ्लैग नहीं मिल रहा है जो कुल पैकेज को फिर से डाउनलोड करता है। मैंने पहले एक अनइंस्टॉल कमांड चलाने की भी कोशिश की, फिर इंस्टॉल करें लेकिन कोई पासा नहीं। शायद मुझे कुछ याद आ रहा है?


- --upgrade लिए शॉर्टकट कमांड:

pip install Django --upgrade

है:

pip install Django -U

आम तौर पर, पीपी स्वयं के बाद साफ हो जाएगी और निर्माण निर्देशिका की सामग्री को हटा देगा। ऐसा करने का एकमात्र समय यह है कि यदि:

  1. आपने --no-install विकल्प का उपयोग किया था
  2. आप संपादन योग्य पैकेज का उपयोग कर रहे हैं
  3. स्थापना रद्द कर दी गई थी या अन्यथा बाधित हुई थी।

अन्य सभी मामलों में, आपके पास ऐसी निर्देशिका नहीं होनी चाहिए जो आपके पर्यावरण को छेड़छाड़ कर रही हो।


मुझे यकीन नहीं है कि यह वास्तव में आपकी समस्या है, लेकिन मेरे मामले में, मैं Django को 1.2.4 में अपग्रेड करने में सक्षम नहीं था - मैं हमेशा 1.2.3 संस्करण के साथ समाप्त कर रहा था, इसलिए मैंने Django को अनइंस्टॉल किया:

<virtualenv>/bin/pip uninstall Django

फिर मैंने <virtualenv>/build/Django निर्देशिका हटा दी और आखिर में मैंने उचित संस्करण स्थापित किया:

<virtualenv>/bin/pip install Django

उम्मीद है कि यह मदद करेगा।


मैंने निम्न आदेश चलाया और इसे 1.2.3 से 1.4.0 तक अपग्रेड किया गया

pip install Django --upgrade

अपग्रेड के लिए शॉर्टकट:

pip install Django -U

नोट : यदि आप जिस पैकेज को अपग्रेड कर रहे हैं, उसके पास कोई आवश्यकता है, तो यह आदेश अतिरिक्त आवश्यकताओं को उपलब्ध सभी संस्करणों को अतिरिक्त रूप से अपग्रेड करेगा। पीआईपी के हाल के संस्करणों में, आप --upgrade-strategy only-if-needed इस --upgrade-strategy only-if-needed को निर्दिष्ट करके रोक सकते हैं --upgrade-strategy only-if-needed । उस ध्वज के साथ, निर्भरता को तब तक अपग्रेड नहीं किया जाएगा जब तक कि निर्भर पैकेज के स्थापित संस्करण अब अपग्रेड किए गए पैकेज की आवश्यकताओं को पूरा नहीं करते हैं।


यदि आप केवल कुछ विशिष्ट पैकेज को अपग्रेड करना चाहते हैं जिसे somepackage कहा जाता है, तो आपको पीपी के हाल के संस्करणों में उपयोग करने वाले कमांड का उपयोग करना चाहिए

pip install --upgrade --upgrade-strategy only-if-needed somepackage

यह बहुत उपयोगी है जब आपने django में एक एप्लिकेशन विकसित किया जो वर्तमान में केवल django के एक विशिष्ट संस्करण (Django = 1.9.x कहें) के साथ काम करेगा और कुछ निर्भर पैकेज को बग-फ़िक्स / नई सुविधा के साथ अपग्रेड करना चाहता है और अपग्रेड किया गया पैकेज निर्भर करता है django पर (लेकिन 1.5 के बाद django के किसी भी संस्करण के साथ काम करता है)। pip install --upgrade django-some-package का डिफ़ॉल्ट व्यवहार pip install --upgrade django-some-package django को नवीनतम संस्करण में अपग्रेड करना होगा जो अन्यथा आपके एप्लिकेशन को तोड़ सकता है, हालांकि --upgrade-strategy only-if-needed निर्भर पैकेज के साथ ही होगा आवश्यक के रूप में अपग्रेड किया गया।





pip