Es konnte keine Version gefunden werden, die die Anforderung <Paket> erfüllt


139

Ich installiere mehrere Python-Pakete in Ubuntu 12.04 mit der folgenden requirements.txtDatei:

numpy>=1.8.2,<2.0.0
matplotlib>=1.3.1,<2.0.0
scipy>=0.14.0,<1.0.0
astroML>=0.2,<1.0
scikit-learn>=0.14.1,<1.0.0
rpy2>=2.4.3,<3.0.0

und diese beiden Befehle:

$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt

(Der erste lädt die Pakete herunter und der zweite installiert sie).

Der Prozess wird häufig mit dem Fehler gestoppt:

  Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: )
No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))

was ich manuell behebe mit:

pip install --user <package>

Führen Sie dann den zweiten pip installBefehl erneut aus.

Dies funktioniert jedoch nur für dieses bestimmte Paket. Wenn ich den zweiten pip installBefehl erneut ausführe , wird der Prozess gestoppt und beschwert sich über ein anderes erforderliches Paket. Ich muss den Vorgang erneut wiederholen, dh: Installieren Sie das neue erforderliche Paket manuell (mit dem obigen Befehl) und führen Sie dann den zweiten pip installBefehl aus.

Bisher habe ich musste manuell installieren six, pytz, nose, und jetzt ist es beschwert sich über das Müssen mock.

Gibt es eine Möglichkeit, alle benötigten Abhängigkeiten pipautomatisch zu installieren , damit ich sie nicht einzeln manuell ausführen muss?

Hinzufügen : Dies geschieht nur in Ubuntu 12.04 BTW. In Ubuntu 14.04 funktionieren pip installdie auf die requirements.txtDatei angewendeten Befehle ohne Probleme.


1
Manchmal hängt Ihr Django-Projekt von lokalen Braupaketen ab. Überprüfen Sie, ob Sie diese installiert haben!
James111

Ich hatte das gleiche Problem, mit 'Python-M Pip Install Flask' konnte ich es installieren
Freelancer

Antworten:


47

Dieser Ansatz (alle Abhängigkeiten in einem Verzeichnis haben und nicht von einem Index herunterladen) funktioniert nur, wenn das Verzeichnis alle Pakete enthält. Das Verzeichnis sollte daher alle Abhängigkeiten enthalten , sondern auch alle Pakete , die diese Abhängigkeiten sind abhängig von (zB six, pytzusw.).

Sie sollten diese daher manuell in aufnehmen requirements.txt(damit der erste Schritt sie explizit herunterlädt) oder Sie sollten alle Pakete mit PyPI installieren und dann pip freeze > requirements.txtdie Liste aller benötigten Pakete speichern.


So ist die einzige Weise , die , um herauszufinden , alle sind die Anforderungen an ist freezedie installierten Pakete in einer Arbeits einrichten und dann alles in dort zur hinzufügen requirements.txtDatei?
Gabriel

2
@Gabriel: Derzeit werden ja so viele Python-Pakete installiert, indem eine setup.pyDatei ausgeführt wird, die die benötigten Abhängigkeiten enthält. Dies sollte besser werden, sobald aus dem Python-Paket Raddateien ( pythonwheels.com ) werden, mit denen Sie eine Liste aller benötigten Pakete erstellen setup.pykönnen, ohne beliebigen Code in Dateien ausführen zu müssen .
Simeon Visser

1
Danke für die Erklärung Simeon. Eine weitere Sache, wenn Sie nichts dagegen haben: Warum passiert dies nicht in Ubuntu 14.04, sondern in Ubuntu 12.04?
Gabriel

4
@ Gabriel: Ich bin mir nicht sicher - meiner Erfahrung nach wird pipimmer abgebrochen, wenn kein zu installierendes Paket gefunden werden kann. Davon abgesehen pipwird gerade aktiv daran gearbeitet, dass Sie möglicherweise eine Version haben, mit der ich nicht gearbeitet habe.
Simeon Visser

@SimeonVisser, "[Räder] ermöglichen es Ihnen, eine Liste aller benötigten Pakete zu erstellen, ohne beliebigen Code auszuführen", interessant, Gedanken darüber, wie man das tatsächlich macht (bis jetzt)?
sschuberth

39

Ich hatte Python3 installiert, aber mein Python in / usr / bin / python war immer noch die alte Version 2.7

Das hat funktioniert ( <pkg>war pyserialin meinem Fall):

python3 -m pip install <pkg>

1
Dies geschieht, wenn in Setuptools python_requires='>=3.0'als Voraussetzung
Juan-Kabbali

11

Nach 2 Stunden Suche habe ich einen Weg gefunden, dies mit nur einer Befehlszeile zu beheben. Sie müssen die Version des Pakets kennen (suchen Sie einfach nach der PACKAGE-Version).

Befehl:

python3 -m pip install --pre --upgrade PACKAGE==VERSION.VERSION.VERSION

9

Der folgende Befehl hat bei mir funktioniert -

python -m pip install flask

4

Versuchen Sie, den Kolben mit dem folgenden Befehl durch die Powershell zu installieren.

pip install --isolated Flask

Dadurch kann die Installation Umgebungsvariablen und Benutzerkonfigurationen vermeiden.


3

Nicht immer, aber in einigen Fällen ist das Paket bereits vorhanden. Zum Beispiel - getpass. Es ist nicht in der "Pip-Liste" aufgeführt, kann aber importiert und verwendet werden:

Geben Sie hier die Bildbeschreibung ein

Wenn ich versuche, getpass per Pip zu installieren, wird folgende Fehlermeldung angezeigt: "Es wurde keine Version gefunden, die die Anforderung getpass erfüllt."



1

Wenn Sie dieses Problem am Arbeitsplatz haben. Dies könnte die Lösung für Sie sein.

pip install -U <package_name> --user --proxy=<your proxy>


-5

Verwenden Sie die Eingabeaufforderung und wählen Sie dann Als Administrator ausführen aus.

Aktualisieren Sie die Pip-Version

Geben Sie zum Aktualisieren von PIP diesen Befehl ein und drücken Sie die Eingabetaste: -

python.exe -m pip install --upgrade pip

Gehen Sie zurück zum Python-Pfad C: \ Benutzer \ Jack \ AppData \ Local \ Programme \ Python \ Python37 \ Scripts

Geben Sie jupyter notebook ein

Sie werden zu http: // localhost: 8888 / undefined / tree - Jupyter Home Page weitergeleitet

Ich hoffe es hilft !!!!!!!!!!!


2
Was hat Jupyter damit zu tun?
Bzazz

Wie kann ein Upgrade von pip die Abhängigkeiten auflösen? Es sind Abhängigkeiten im aufrufenden Verzeichnis erforderlich.
Rizwan Javid

-7

könnte helfen

Sudo Pip Install Wheel == 0.29.0


4
Entschuldigung. Ich lese kein Chinesisch oder eine andere asiatische Sprache. Der Empfehlungslink könnte in Zukunft unterbrochen werden. Bitte posten Sie hier das Wesentliche. Wie gepostet seine minderwertige Antwort ohne Kontext.
ZF007

1
Der Empfehlungslink ist in Japanisch ... Bitte teilen Sie Links in Englisch
javidazac

6
Der Code ist für alle Entwickler verständlich und die Menge an Japanisch ist sowohl minimal als auch wenig größer als bei Titeln, die den folgenden Code einführen (übersetzen Sie ihn, wenn es Ihnen zu schwierig ist, aber Sie müssen das wirklich nicht tun, um zu verstehen, was los ist). Es sollte kein Problem mit anderen Sprachen als Englisch geben, solange die Codebeispiele klar sind und nicht vollständig von der verwendeten Fremdsprache abhängen.
rg88

6
@ rg88 Das wäre in Ordnung für einen Kommentar (vielleicht mit einer Einschränkung), aber eine Antwort auf Stack Overflow sollte in sich geschlossen und überzeugend sein.
Tripleee
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.