django - python




كيف يمكنني ترقية حزم معينة باستخدام pip وملف المتطلبات؟ (5)

أمر الاختصار --upgrade :

pip install Django --upgrade

هو:

pip install Django -U

أنا أستخدم النقطة مع ملف المتطلبات ، في virtualenv ، لمشاريع 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))

هذا بعد تحديث رقم إصدار Django من 1.2.3 إلى 1.2.4 في ملف متطلباتي. أنا أستخدم هذا الأمر للقيام بالترقية بالفعل:

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

لا يمكنني العثور على أي علامة تؤدي إلى إعادة تحميل الحزمة الإجمالية. حتى أنني جربت تشغيل أمر إزالة التثبيت أولاً ، ثم التثبيت ولكن ليس النرد. ربما أنا في عداد المفقودين شيء؟


إذا قمت بترقية حزمة ، فستتم إزالة الإصدار القديم.

والطريقة الملائمة للقيام بذلك هي استخدام أداة pip-upgrader هذه والتي تقوم أيضًا بتحديث الإصدارات في ملف requirements.txt الخاص بك للحزم المختارة (أو كافة الحزم).

التركيب

pip install pip-upgrader

استعمال

قم بتنشيط virtualenv (مهم ، لأنه سيقوم أيضًا بتثبيت الإصدارات الجديدة من الحزم التي تمت ترقيتها في virtualenv الحالي).

cd في دليل المشروع الخاص بك ، ثم قم بتشغيل:

pip-upgrade

الاستخدام المتقدم

إذا تم وضع المتطلبات في موقع غير قياسي ، فأرسلها كوسيطة:

pip-upgrade path/to/requirements.txt

إذا كنت تعرف بالفعل الحزمة التي ترغب في ترقيتها ، فما عليك سوى إرسالها كوسيط:

pip-upgrade -p django -p celery -p dateutil

إذا كنت تحتاج إلى الترقية إلى إصدار ما قبل النشر / الإصدار --prerelease ، --prerelease بإضافة وسيطة --prerelease .

الإفصاح الكامل: لقد كتبت هذه الحزمة. آمل أن يساعد.


ركضت الأمر التالي وترقية من 1.2.3 إلى 1.4.0

pip install Django --upgrade

اختصار للترقية:

pip install Django -U

ملاحظة : إذا كانت الحزمة التي تقوم بترقيتها لها أي متطلبات ، سيقوم هذا الأمر أيضًا بترقية جميع المتطلبات إلى أحدث الإصدارات المتاحة. في الإصدارات الأخيرة من النقطة ، يمكنك منع هذا السلوك من خلال تحديد --upgrade-strategy only-if-needed . باستخدام تلك العلامة ، لن تتم ترقية تبعيات ما لم تعد الإصدارات المثبتة من الحزم التابعة تستوفي متطلبات الحزمة التي تمت ترقيتها.


عادةً ، سيتم تنظيف نقطة بعد نفسه وإزالة محتويات دليل البناء. الوقت الوحيد الذي لا يفعل فيه هذا هو:

  1. استخدمته --no-install خيار --no-install
  2. أنت تستخدم حزم قابلة للتحرير
  3. تم إلغاء التثبيت أو تمت مقاطعته بأي طريقة أخرى.

في جميع الحالات الأخرى ، لا يجب أن يكون لديك دليل build على سد البيئة الخاصة بك.


وفقا docs المثال المثال 3

pip install --upgrade django

ولكن استنادًا إلى خبرتي ، سيؤدي استخدام هذه الطريقة أيضًا إلى ترقية أي حزمة مرتبطة بها. مثال:

افترض أنك تريد ترقية somepackage التي تتطلب django >= 1.2.4 باستخدام هذا النوع من الطرق ، كما ستقوم بترقية somepackage و django إلى التحديث الأحدث. فقط أن تكون آمنة القيام به:

# assume you want to keep django 1.2.4
pip install --upgrade somepackage django==1.2.4

سيؤدي القيام بذلك إلى ترقية somepackage وحفظ django إلى الإصدار 1.2.4





pip