Ich habe erfolgreich eine Bibliothek mit pip install <library-name>
installiert. Aber wenn ich versuche, es zu importieren, löst Python ImportError: No module named <library-name>
. Warum bekomme ich diesen Fehler und wie kann ich die installierte Bibliothek verwenden?ImportError nach erfolgreicher Pip-Installation
Antwort
TL; DR: Es sind oft mehrere Versionen von Python-Interpretern und Pip-Versionen vorhanden. Die Verwendung von python -m pip install <library-name>
anstelle von pip install <library-name>
stellt sicher, dass die Bibliothek in den Standard-Python-Interpreter installiert wird.
Bitte beachten Sie auch: Aus meiner persönlichen Erfahrung würde ich empfehlen, sudo pip install
zu verwenden, um Pakete in den Standard-Python-Interpreter des Systems zu installieren. Dies kann zu verschiedenen Problemen führen. Wenn Sie versucht sind, pip
mit sudo
anzurufen, überprüfen Sie bitte zuerst, ob eine virtualenv keine bessere Option für Sie ist.
Die meisten modernen Systeme liefern mehrere Python-Interpreter. Jeder Interpreter verwaltet seine eigenen installierten Pakete. Bei der Installation neuer Pakete ist es wichtig zu verstehen, in welchen Interpreter diese Pakete tatsächlich installiert sind.
Auf Unix-Systemen kann die Shell verwendet werden, um zu verstehen, was genau passiert.
Eingabe which -a python
zeigt alle Interpreter, die in Ihrem PATH
. Die erste Zeile entspricht dem Interpreter, der verwendet wird, wenn Sie python
von der Befehlszeile aus ausführen.
/private/tmp/py32/bin/python
/usr/local/bin/python
/usr/bin/python
Jede Pip-Version gehört genau einem Interpreter. which -a pip
zeigt alle Pip-Versionen. Wiederum wird die erste Zeile aufgerufen, wenn Sie pip
in Ihre Shell eingeben.
/usr/local/bin/pip
/usr/bin/python
Beachten Sie, dass in diesem Fall python
den Interpreter in /private/tmp/py32/
installiert gehört, aber pip
installiert in den Interpreter /usr/local/bin
. Nach einer erfolgreichen Installation einer Bibliothek können Sie sie nicht in Ihrem Standard-Python-Interpreter importieren.
Wie importieren Sie die installierte Bibliothek?
Ihre erste Option ist, den gewünschten Interpreter mit seinem vollständigen Pfad zu starten. Wenn Sie also /usr/local/bin/python
eingeben, können Sie die Bibliothek importieren.
Die zweite - oft bevorzugte - Option ist es, gezielt die richtige Version von pip aufzurufen. Um dies zu tun, können Sie python -m pip install <library-name>
anstelle von pip install <library-name>
verwenden. Dies ruft die Pip-Version auf, die zu Ihrem Standard-Python-Interpreter gehört.
was moderne systeme haben mehrere version der gleichen python? Wenn Sie '/ usr/local/bin/python' sehen, bedeutet das normalerweise, dass Sie es installiert haben. –
Der Punkt, den ich versuche zu machen ist, dass es nicht nur 'Python' gibt, sondern mehrere Python-Interpreter. Häufig ein Python2.x und ein Python3.x Interpreter standardmäßig. Hm, vielleicht muss ich umschreiben, um meinen Standpunkt klarer zu machen. – cel
Ja, aber auf Unix gibt es die Standard-System-Python-Interpreter nicht mehrere Versionen von Python2 oder 3-Interpreter standardmäßig installiert, wenn Sie andere Interpreter sehen, dann Sie sie installiert, 'die -a Python sollte einen Pfad auf eine neue Installation und es zurückgeben sollte sehr deutlich gemacht werden, dass Sie nicht mit dem Standard-Python schrauben sollten. Ein virtualenv oder Pyenv wäre der Weg zu gehen, wenn Sie nicht wissen, was Sie tun. –
@cel hat eine gute Antwort gegeben. Ich will nur ein paar weitere Dinge hinzufügen:
- Überprüfen Sie, ob Sie die Bibliothek in das virtualenv gerade installieren, die Sie verwenden möchten.
- Es gibt einige Bibliotheken, deren Paketnamen sich vom Namen der Bibliothek unterscheiden. Sie können ihre Dokumentation online ansehen (google mit dem Schlüsselwort
python <library>
würde normalerweise die Informationen anzeigen), um zu sehen, ob Sie das Paket korrekt importieren.
(mir bewusst, dass meine Antwort soll als Kommentar unter @ cel Antwort gepostet werden. Es ist nur so, dass ich nicht genug Ruf zu tun)
das sollten Kommentare sein, oder? –
Yeap. Das Lesen der Frage und die Antwort und die Kommentare sorgten erneut dafür, dass mir klar wurde, dass mein Kommentar –
sein sollte. Ich konnte jedoch weder @ Cel's Frage noch Antwort beantworten, da mein Ruf unter 50 liegt :(Also meine Antwort ' –
- 1. Formularaktionsstatusmeldung nach erfolgreicher Übermittlung
- 2. Datentransformation nach erfolgreicher Validierung
- 3. Block UI nach erfolgreicher Feldverifizierung
- 4. Neuzuweisen RootViewController nach erfolgreicher Anmeldung
- 5. JQuery aktualisiert Tabellenansicht nach erfolgreicher Operation
- 6. Übergeben von Shibboleth-Anmeldeinformationen nach erfolgreicher Authentifizierung
- 7. Wordpress Redirect nach erfolgreicher Formularvalidierung und senden
- 8. Logik schlägt fehl Nach erfolgreicher Ausführung
- 9. User.Identity.GetUserId() gibt nach erfolgreicher Anmeldung null zurück.
- 10. Installshield nach erfolgreicher Installation, startet keine exe
- 11. SQLite notiert Werte nach erfolgreicher Transaktion
- 12. Rails: Befehl nicht gefunden nach erfolgreicher Installation
- 13. Sitzung ist nach erfolgreicher Anmeldung verloren?
- 14. Wie lösche ich eine Radiobutton-Liste nach erfolgreicher Dateneingabe?
- 15. Wie Redirect URL nach erfolgreicher Anmeldung mit Social Provider
- 16. AuthUserSession ist null im ServiceStack-Service nach erfolgreicher Authentifizierung
- 17. Hybrid ionische mobile app: hide Login-Bildschirm nach erfolgreicher Anmeldung
- 18. magento Auftrag nach erfolgreicher Zahlung von ccavenue erstellen
- 19. Projekt, das nach erfolgreicher Nuget-Paketwiederherstellung keine Pakete erkennt
- 20. So stellen Sie verschiedene ViewController nach erfolgreicher Anmeldung vor
- 21. Modellinstanzen, die nach erfolgreicher Attributaktualisierung nicht als geändert markiert werden
- 22. Benutzerdaten von Nodejs Server nach erfolgreicher Anmeldung in Angular verschieben
- 23. Anhängen Wert an ein TextView nach erfolgreicher Anmeldung
- 24. Gitlab Umleitungen auf Seite 404 nach erfolgreicher Anmeldung
- 25. Asp.net 5 Web Application Startup Ausnahme nach erfolgreicher Veröffentlichung
- 26. So gehen Sie nach erfolgreicher Anmeldung zur vorherigen Seite zurück
- 27. Warum kommt RelatedObjectDoesNotExist auch nach erfolgreicher Migration in pythonanywhere?
- 28. Wie funktioniert ein automatischer Commit nach erfolgreicher Zusammenführung?
- 29. das Formular nach erfolgreicher Paypal-Geldtransaktion mit php
- 30. Zurück zur letzten Url eingegeben nach erfolgreicher Anmeldung in YII
@Ahsanul Haque, Dies scheint eine zu sein häufiges Problem in Python. Ich versuche ein Frage-Antwort-Paar zu erstellen, auf das ich in Kommentaren verweisen kann. Siehe auch: http://stackoverflow.com/help/self-answer. Diese Frage wurde mit dem in diesem Link beschriebenen Verfahren erstellt. Deshalb wurden Frage und Antwort genau zur gleichen Zeit gepostet. – cel
gut zu wissen, dass ich keine schaden –