كيف يمكنني استخدام طريقة النشر المستندة إلى VirtualEnV دون الترقية إلى كل إصدار من المنبع؟
-
27-09-2019 - |
سؤال
يوم الجمعة الماضي ، قمت ببناء RPM Spec لمشروع Django الخاص بي. RPM يخلق أ virtualenv
, ، التنزيلات التبعيات عبر pip
ويضع كل شيء في الحزم. اليوم ، اكتشفت أنه تم إصدار BeautifulSoup 3.2. لحسن الحظ ، كان لدي نسخة جميلة مثبتة في المتطلبات. txt ، لذلك اكتشفت بسبب فشل البناء.
الآن مسألة مختلفة تمامًا هي: كيف يمكنني تجنب ترقية الأشياء في المستقبل؟ قامت BeautifulSoup بحذف جميع الإصدارات السابقة من PYPI ، لذلك لا يمكنني تنزيل إصدار قمت باختباره بالفعل. pip
تنزيل ذاكرة التخزين المؤقت لا يساعد هنا أيضًا ، منذ ذلك الحين pip
يحاول دائمًا التحقق من PYPI أولاً.
هل يمكنك أن تنصح بشيء لتجنب هذا الموقف؟
المحلول
أولاً ، هذا وضع غير عادي. لم أر حزمة أخرى تزيل جميع الإصدارات القديمة بالطريقة التي تعمل بها جميلة. أنا أعتبر أن السلوك المعمل للمستخدم ، باستثناء ربما في حالات إصلاح أمني خطير.
ومع ذلك ، إذا كنت تريد عملية بناء موثوقة باستخدام PIP ، فأنت بحاجة حقًا إلى عكس جميع الحزم التي تعتمد عليها محليًا. ليس من الصعب القيام به؛ يمكنك استخدام خيار PIP-التنزيل (أو ذاكرة التخزين المؤقت PIP الحالية) للحصول على جميع كرات القطران ، ثم فقط تفريغها في دليل فهرس يخدم على شبكة الإنترنت واستخدامه-روابط في ملف المتطلبات الخاصة بك إلى PIP هناك ( زائد-لا مؤشر لإخباره بعدم استخدام PYPI).
نصائح أخرى
لا يزال من الممكن العثور على الملفات المعنية: ما عليك سوى توفير عنوان URL المباشر بدلاً من اسم الحزمة:
http://www.crummy.com/software/beautifulsoup/download/3.x/3.0.8.tar.gz
علي سبيل المثال.