Ich versuche, Version 1.2.2 des MySQL_python-Adapters mit einer neuen virtuellen Umgebung zu installieren, die mit der --no-site-packages
Option erstellt wurde. Die aktuelle Version in PyPi ist 1.2.3 . Gibt es eine Möglichkeit, die ältere Version zu installieren? Ich habe einen Artikel gefunden, der besagt, dass dies der Fall sein sollte:
pip install MySQL_python==1.2.2
Bei der Installation wird es jedoch weiterhin MySQL_python-1.2.3-py2.6.egg-info
in den Site-Paketen angezeigt. Ist dies ein spezifisches Problem für dieses Paket oder mache ich etwas falsch?
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Antworten:
TL; DR:
pip install -Iv
(dhpip install -Iv MySQL_python==1.2.2
)Erstens sehe ich zwei Probleme mit dem, was Sie versuchen zu tun. Da Sie bereits eine installierte Version haben, sollten Sie entweder den aktuell vorhandenen Treiber deinstallieren oder verwenden
pip install -I MySQL_python==1.2.2
Sie werden jedoch bald feststellen, dass dies nicht funktioniert. Wenn Sie sich das Installationsprotokoll von pip ansehen oder ein Protokoll
pip install -Iv MySQL_python==1.2.2
erstellen, werden Sie feststellen, dass der PyPI-URL-Link für MySQL_python v1.2.2 nicht funktioniert. Sie können dies hier überprüfen: http://pypi.python.org/pypi/MySQL-python/1.2.2Der Download-Link 404s und die Fallback-URL-Links werden aufgrund des jüngsten Upgrades von sourceforge.net und der veralteten URL von PyPI unendlich umgeleitet.
Um den Treiber ordnungsgemäß zu installieren, können Sie die folgenden Schritte ausführen:
quelle
Sie können sogar einen Versionsbereich mit
pip install
Befehl verwenden. Etwas wie das:Und wenn das Paket bereits installiert ist und Sie ein Downgrade durchführen möchten, fügen Sie Folgendes hinzu
--force-reinstall
:quelle
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Eine Möglichkeit, wie in diesem Beitrag vorgeschlagen , besteht darin, die Version
pip
wie folgt zu erwähnen :dh Verwenden
==
und erwähnen Sie die Versionsnummer, um nur diese Version zu installieren.-I, --ignore-installed
ignoriert bereits installierte Pakete.quelle
pip list
war sich das auch nicht bewusst, war es aberconda list
(und würde die verschiedenen Paketversionen anzeigen). Es verwirrte Pycharm auch völlig .So installieren Sie eine bestimmte Python-Paketversion, unabhängig davon, ob es sich um das erste Mal, ein Upgrade oder ein Downgrade handelt:
MySQL_python Version 1.2.2 ist nicht verfügbar, daher habe ich eine andere Version verwendet. Um alle verfügbaren Paketversionen aus einem Index anzuzeigen, schließen Sie die Version aus:
quelle
Ich glaube, wenn Sie bereits ein Paket installiert haben, wird pip es nicht mit einer anderen Version überschreiben. Verwenden Sie
-I
diese Option, um frühere Versionen zu ignorieren.quelle
unset PYTHONPATH
um zu halten , nichtpip
sehen Ihre vorinstallierte BibliothekenManchmal wird die zuvor installierte Version zwischengespeichert.
Es gibt Folgendes zurück:
Anforderung bereits erfüllt: pillow == 5.2.0 in /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Wir können --no-cache-dir zusammen mit -I verwenden, um dies zu überschreiben
quelle
Da dies eine bahnbrechende Änderung zu sein schien, die in Version 10 von pip eingeführt wurde, habe ich ein Downgrade auf eine kompatible Version durchgeführt:
Dieser Befehl weist pip an, eine Version des Moduls zu installieren, die niedriger als Version 10 ist. Führen Sie dies in einem virutalenv aus, damit Sie Ihre Site-Installation von Python nicht vermasseln .
quelle
Ich bin kürzlich auf ein Problem bei der Verwendung von
pip
's gestoßen-I
- Flag , dass ich Dokument irgendwo wollte:-I
wird nicht das vorhandene Paket deinstallieren, bevor Sie fortfahren; es wird nur auf dem alten installiert. Dies bedeutet, dass alle Dateien, die zwischen den Versionen gelöscht werden sollen, stattdessen an Ort und Stelle bleiben. Dies kann zu seltsamem Verhalten führen, wenn diese Dateien Namen mit anderen installierten Modulen teilen.Nehmen wir zum Beispiel an, es gibt ein Paket mit dem Namen
package
. In einer derpackage
Dateien verwenden sieimport datetime
. In[email protected]
verweist dies nun auf das Standardbibliotheksmoduldatetime
, in[email protected]
wurde jedoch ein lokalerdatetime.py
als Ersatz für die Standardbibliotheksversion hinzugefügt (aus welchem Grund auch immer).Nehmen wir jetzt an, ich renne
pip install package==3.0.0
, merke aber später, dass ich tatsächlich eine Version haben wollte2.0.0
. Wenn ich jetzt startepip install -I package==2.0.0
, wird die altedatetime.py
Datei nicht entfernt, sodass bei jedem Aufruf vonimport datetime
das falsche Modul importiert wird.In meinem Fall manifestierte sich dies mit seltsamen Syntaxfehlern, da die neuere Version des Pakets eine Datei hinzufügte, die nur mit Python 3 kompatibel war, und als ich Paketversionen auf Python 2 herunterstufte, importierte ich das Nur-Python-3-Modul weiter.
Auf dieser Grundlage würde ich argumentieren, dass die Deinstallation des alten Pakets immer der Verwendung
-I
beim Aktualisieren installierter Paketversionen vorzuziehen ist .quelle
Dieser Befehl unten hat bei mir funktioniert
Python-Version - 2.7
Paket - Python-Jenkins
Befehl -
$ pip install 'python-jenkins>=1.1.1'
quelle
Es gibt zwei Möglichkeiten, wie Sie ein Paket mit Version installieren können: - A). pip install -Iv Paketname == Version B). pip install -v Paketname == Version
Für ein
Wenn Sie während der Installation die Option -I verwenden (wenn Sie nicht wissen, ob das Paket bereits installiert ist) (z. B. 'pip install -Iv pyreadline == 2. *' oder so), installieren Sie ein neues separates Paket mit demselben vorhandenen Paket mit einer anderen Version.
Für B.
2.und dann sehen, was bereits von der Pip-Liste installiert wurde
3.Wenn die Liste der Pakete ein Paket enthält, das Sie mit einer bestimmten Version installieren möchten, ist es besser, zuerst das Paket dieser Version zu deinstallieren, indem Sie den Paketnamen pip deinstallieren
4.Und jetzt können Sie das gleiche Paket mit einer bestimmten Version neu installieren , indem Sie -v Paketname == Version installieren, z. B. pip installieren -v pyreadline == 2. *
quelle
Wenn Sie auf die neueste Version aktualisieren möchten und nicht wissen, welche Version die neueste ist, können Sie sie eingeben.
pip install MySQL_python --upgrade
Dadurch wird MySQL_python auf die neueste verfügbare Version aktualisiert, die Sie für jede andere Paketversion verwenden können.
quelle