Specifieke pakketversies installeren met pip

Ik probeer versie 1.2.2 van de MySQL_python-adapter te installeren met een nieuwe virtualenv die is gemaakt met de optie --no-site-packages. De huidige versie die wordt weergegeven in PyPi is 1.2.3. Is er een manier om de oudere versie te installeren? Ik heb een artikel gevonden waarin staat dat dit het zou moeten doen:

pip install MySQL_python==1.2.2

Na installatie toont het echter nog steeds MySQL_python-1.2.3-py2.6.egg-info in de sitepakketten. Is dit een specifiek probleem voor dit pakket, of doe ik iets verkeerd?


Antwoord 1, autoriteit 100%

TL;DR:

  • pip install -Iv (d.w.z. pip install -Iv MySQL_python==1.2.2)

Ten eerste zie ik twee problemen met wat u probeert te doen. Aangezien je al een geïnstalleerde versie hebt, moet je ofwel het huidige bestaande stuurprogramma verwijderen of pip install -I MySQL_python==1.2.2

gebruiken

Je zult er echter snel achter komen dat dit niet werkt. Als je het installatielogboek van pip bekijkt, of als je een pip install -Iv MySQL_python==1.2.2 doet, zul je zien dat de PyPI URL-link niet werkt voor MySQL_python v1.2.2. Je kunt dit hier verifiëren: http://pypi.python.org/pypi/MySQL -python/1.2.2

De downloadlink 404s en de fallback-URL-links worden oneindig omgeleid vanwege de recente upgrade van sourceforge.net en de verouderde URL van PyPI.

Dus om het stuurprogramma correct te installeren, kunt u deze stappen volgen:

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

Antwoord 2, autoriteit 56%

Je kunt zelfs een versiebereik gebruiken met de opdracht pip install. Zoiets als dit:

pip install 'stevedore>=1.3.0,<1.4.0'

En als het pakket al is geïnstalleerd en u wilt het downgraden, voeg dan --force-reinstall als volgt toe:

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

Antwoord 3, autoriteit 15%

Eenrichtingsverkeer, zoals voorgesteld in dit post, is om de versie in -I te vermelden als:

pip install -Iv MySQL_python==1.2.2

d.w.z. Gebruik == en vermeld het versienummer om alleen die versie te installeren. -I, --ignore-installed negeert reeds geïnstalleerde pakketten.


Antwoord 4, autoriteit 7%

Om een ​​specifieke versie van het Python-pakket te installeren, of het nu de eerste keer is, een upgrade of een downgrade, gebruik:

pip install --force-reinstall MySQL_python==1.2.4

MySQL_python versie 1.2.2 is niet beschikbaar, dus ik heb een andere versie gebruikt. Om alle beschikbare pakketversies van een index te bekijken, sluit de versie uit:

pip install MySQL_python==

Antwoord 5, autoriteit 4%

Ik geloof dat als je al een pakket hebt geïnstalleerd, pip het niet zal overschrijven met een andere versie. Gebruik -I om eerdere versies te negeren.


Antwoord 6, autoriteit 2%

Soms wordt de eerder geïnstalleerde versie in de cache opgeslagen.

~$ pip install pillow==5.2.0

Het geeft het volgende terug:
Vereiste al voldaan: pillow==5.2.0 in /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)

We kunnen –no-cache-dir samen met -I gebruiken om dit te overschrijven

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

Antwoord 7

Aangezien dit een baanbrekende wijziging bleek te zijn die werd geïntroduceerd in versie 10 van pip, heb ik gedowngraded naar een compatibele versie:

pip install 'pip<10' 

Deze opdracht vertelt pip om een ​​versie van de module lager dan versie 10 te installeren. Doe dit in een virutalenv zodat u uw site-installatie van Python niet verknoeit.


Antwoord 8

Ik kwam onlangs een probleem tegen bij het gebruik van de -I-vlag van -I die ik ergens wilde documenteren:

-I zal niet het bestaande pakket verwijderen voordat u doorgaat; het zal het gewoon bovenop de oude installeren. Dit betekent dat alle bestanden die tussen versies moeten worden verwijderd, in plaats daarvan op hun plaats blijven. Dit kan vreemd gedrag veroorzaken als die bestanden namen delen met andere geïnstalleerde modules.

Stel bijvoorbeeld dat er een pakket is met de naam package. In een van de package-bestanden gebruiken ze import datetime. Nu, in [email protected] verwijst dit naar de standaard bibliotheek datetime module, maar in [email protected] voegden ze een local datetime.py als vervanging voor de standaard bibliotheekversie (om welke reden dan ook).

Laten we zeggen dat ik pip install package==3.0.0 uitvoer, maar later besef dat ik eigenlijk versie 2.0.0 wilde. Als ik nu pip install -I package==2.0.0 uitvoer, wordt het oude bestand datetime.py niet verwijderd, dus eventuele aanroepen naar import datetime importeert de verkeerde module.

In mijn geval manifesteerde dit zich met vreemde syntaxisfouten omdat de nieuwere versie van het pakket een bestand toevoegde dat alleen compatibel was met Python 3, en toen ik pakketversies downgraded om Python 2 te ondersteunen, ging ik door met het importeren van de Python-3- enige module.

Op basis hiervan zou ik stellen dat het verwijderen van het oude pakket altijd de voorkeur verdient boven het gebruik van -I bij het bijwerken van de geïnstalleerde pakketversies.


Antwoord 9

Dit onderstaande commando werkte voor mij

Python-versie – 2.7

pakket – python-jenkins

opdracht – $ pip install 'python-jenkins>=1.1.1'


Antwoord 10

Er zijn 2 manieren waarop u elk pakket met versie kunt installeren: –
A). pip install -Iv pakketnaam == versie
B). pip install -v pakketnaam == versie

Voor A

Hier, als je de -I optie gebruikt tijdens het installeren (als je niet weet of het pakket al is geïnstalleerd) (zoals ‘pip install -Iv pyreadline == 2.*’ of zoiets), zou je een nieuw afzonderlijk pakket installeren met hetzelfde bestaande pakket met een andere versie.

Voor B

  1. In het begin wil je misschien controleren of er geen verbroken vereisten zijn.
    pip check

2.en kijk dan wat er al is geïnstalleerd door
piplijst

3.Als de lijst met pakketten een pakket bevat dat u met een specifieke versie wilt installeren, is het beter om eerst het pakket van deze versie te verwijderen door
pip pakketnaam verwijderen

4.En nu kunt u doorgaan met het opnieuw installeren van hetzelfde pakket met een specifieke versie, door
pip install -v package-name==version
bijv. pip install -v pyreadline == 2.*


Antwoord 11

Als je wilt updaten naar de nieuwste versie en je weet niet wat de nieuwste versie is, kun je typen.

pip install MySQL_python –upgrade

Hiermee wordt de MySQL_python bijgewerkt voor de nieuwste beschikbare versie, die u voor elke andere pakketversie kunt gebruiken.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

3 × three =

Other episodes