it-swarm.asia

تثبيت إصدارات حزمة محددة مع نقطة

أحاول تثبيت الإصدار 1.2.2 من محول MySQL_python ، باستخدام virtualenv جديدة تم إنشاؤها باستخدام خيار --no-site-packages. الإصدار الحالي المعروض في PyPi هو 1.2.3 . هل هناك طريقة لتثبيت الإصدار الأقدم؟ لقد وجدت مقالة تفيد بأن هذا يجب أن يفعل ذلك:

pip install MySQL_python==1.2.2

عند التثبيت ، لا يزال يظهر MySQL_python-1.2.3-py2.6.Egg-info في حزم الموقع. هل هذه مشكلة خاصة بهذه الحزمة ، أو هل أفعل شيئًا ما خطأ؟

1045
Joe

أولاً ، أرى مشكلتين تتعلقان بما تحاول القيام به. نظرًا لأن لديك إصدارًا مثبتًا بالفعل ، يجب عليك إما إلغاء تثبيت برنامج التشغيل الحالي أو استخدام pip install -I MySQL_python==1.2.2

ومع ذلك ، ستكتشف قريبًا أن هذا الأمر لا يعمل. إذا نظرت إلى سجل التثبيت الخاص بالنقطة ، أو إذا قمت باستخدام pip install -Iv MySQL_python==1.2.2 ، فستجد أن رابط URL PyPI لا يعمل مع MySQL_python v1.2.2. يمكنك التحقق من هذا هنا: http://pypi.python.org/pypi/MySQL-python/1.2.2

تتم إعادة توجيه رابط التنزيل 404s وروابط URL الاحتياطية بشكل غير محدود بسبب التحديث الأخير لـ sourceforge.net وعنوان URL غير المستقر في PyPI.

لذلك لتثبيت برنامج التشغيل بشكل صحيح ، يمكنك اتباع الخطوات التالية:

pip uninstall MySQL_python
pip install -Iv http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download
735
Mahmoud Abdelkader

يمكنك حتى استخدام نطاق إصدار باستخدام الأمر pip install. شيء من هذا القبيل:

pip install 'stevedore>=1.3.0,<1.4.0'

وإذا كانت الحزمة مثبتة بالفعل وتريد تقليلها ، فأضف --force-reinstall مثل هذا:

pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall
391
user1978556

طريقة واحدة كما هو مقترح في هذا المنشور هو ذكر الإصدار في pip as

pip install -Iv MySQL_python==1.2.2

أي استخدم == واذكر رقم الإصدار لتثبيت هذا الإصدار فقط. يتجاهل -I, --ignore-installed الحزم المثبتة بالفعل.

113
Srikar Appalaraju

لتثبيت إصدار حزمة بيثون معين ، سواء كانت هذه هي المرة الأولى ، أو ترقية أو استخدام إصدار أقدم:

pip install --force-reinstall MySQL_python==1.2.4

MySQL_python الإصدار 1.2.2 غير متوفر ، لذا فقد استخدمت إصدارًا مختلفًا. لعرض جميع إصدارات الحزمة المتاحة من الفهرس ، استبعد الإصدار:

pip install MySQL_python==
51
Zach Weg

أعتقد أنه إذا كان لديك بالفعل حزمة تم تثبيتها ، فلن يقوم برنامج pip باستبدالها بإصدار آخر. استخدم -I لتجاهل الإصدارات السابقة.

35
dappawit

في بعض الأحيان ، يتم تخزين النسخة المثبتة مسبقًا مؤقتًا.

~$ pip install pillow==5.2.0

تقوم بإرجاع ما يلي:
متطلب بالفعل: سادة == 5.2.0 في /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)

يمكننا استخدام - no-cache-dir مع -I للكتابة فوق هذا

~$ pip install --no-cache-dir -I pillow==5.2.0
4
Jack Chan

نظرًا لأن هذا يبدو أنه تغيير جذري تم تقديمه في الإصدار 10 من النقطة ، فقد قمت بالترقية إلى إصدار متوافق:

pip install 'pip<10' 

يطلب هذا الأمر من النقطة تثبيت إصدار من الوحدة أقل من الإصدار 10. قم بذلك في virutalenv حتى لا تقوم بتثبيت موقع Python الخاص بك.

3
Trenton

هناك طريقتان يمكنك من خلالها تثبيت أي حزمة مع الإصدار: - A). تثبيت نقطة -Iv حزمة الاسم == الإصدار B). تثبيت نقطة -v حزمة الاسم == الإصدار

للحصول على

هنا ، إذا كنت تستخدم الخيار -I أثناء التثبيت (عندما لا تعرف ما إذا كانت الحزمة مثبتة بالفعل) (مثل "pip pip - Iv pyreadline == 2. * أو شيء ما) ، فأنت تقوم بتثبيت جديد حزمة منفصلة مع نفس الحزمة الحالية وجود بعض إصدار مختلف.

ل B

  1. في البداية ، قد ترغب في التحقق من عدم وجود متطلبات مقطوعة. فحص النقاط

2. ثم راجع ما تم تثبيته بالفعل بواسطة قائمة النقاط

3. إذا كانت قائمة الحزم تحتوي على أي حزمة ترغب في تثبيتها مع إصدار محدد ، فإن الخيار الأفضل هو إلغاء تثبيت حزمة هذا الإصدار أولاً ، بواسطة pip إلغاء تثبيت package name

4. والآن يمكنك المضي قدمًا لإعادة تثبيت نفس الحزمة بإصدار معين ، بواسطة pip install -v package-name == version على سبيل المثال تثبيت نقطة - pyreadline == 2. *

0
Samarth

واجهت مشكلة مؤخرًا عند استخدام علامة pip's -I التي أردت توثيقها في مكان ما:

-I will not / إلغاء تثبيت الحزمة الموجودة قبل المتابعة ؛ سوف تثبيته فقط على الجزء القديم. هذا يعني أن أي ملفات يجب حذفها بين الإصدارات ستترك بدلاً من ذلك في مكانها. هذا يمكن أن يسبب سلوك غريب إذا كانت هذه الملفات مشاركة أسماء مع الوحدات النمطية المثبتة الأخرى.

على سبيل المثال ، دعنا نقول أن هناك حزمة باسم package. في أحد ملفات packages ، يستخدمون import datetime. الآن ، في [email protected] ، يشير هذا إلى الوحدة النمطية datetime للمكتبة القياسية ، ولكن في [email protected] ، أضافوا datetime.py محليًا كبديل لإصدار المكتبة القياسي (لأي سبب).

لنفترض الآن أنني أقوم بتشغيل pip install package==3.0.0 ، ولكن بعد ذلك أدرك أنني أردت بالفعل إصدار 2.0.0. إذا قمت الآن بتشغيل pip install -I package==2.0.0 ، لن تتم إزالة ملف datetime.py القديم ، لذلك فإن أي مكالمات إلى import datetime ستستورد الوحدة النمطية الخاطئة.

في حالتي ، تجلى هذا مع أخطاء بناء جملة غريبة لأن الإصدار الأحدث من الحزمة أضاف ملفًا متوافقًا فقط مع Python 3 ، وعندما قمت بترقية إصدارات الحزمة لدعم Python 2 ، واصلت استيراد الوحدة النمطية Python-3-only.

بناءً على ذلك ، أود أن أزعم أن إلغاء تثبيت الحزمة القديمة يفضل دائمًا استخدام -I عند تحديث إصدارات الحزمة المثبتة.

0
0x5453