كيف يمكنني استخدام طريقة النشر المستندة إلى VirtualEnV دون الترقية إلى كل إصدار من المنبع؟

StackOverflow https://stackoverflow.com/questions/4244241

سؤال

يوم الجمعة الماضي ، قمت ببناء 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

علي سبيل المثال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top