Nach der Installation von mechanize kann ich es anscheinend nicht importieren.
Ich habe versucht, über pip, easy_install und über python setup.py install
dieses Repo zu installieren : https://github.com/abielr/mechanize . All dies ohne Erfolg, da ich jedes Mal, wenn ich mein interaktives Python betrete, Folgendes erhalte:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
Die Installationen, die ich zuvor ausgeführt habe, haben gemeldet, dass sie erfolgreich abgeschlossen wurden, sodass ich davon ausgehe, dass der Import funktioniert. Was könnte diesen Fehler verursachen?
easy_install
? Auch bestätigen Sie bitte den vollständigen Pfadeasy_install
,pip
und vonpython
.sys.path
, ob Sie an den richtigen Stellen suchen, auf Berechtigungsproblemels -laR /usr/local/lib/python2.7/dist-packages/mech*
prüfen undimp.find_module("mechanize")
zwischen Fehlern, die nicht gefunden werden können, und Fehlern, die nicht importiert werden können, unterscheiden?Antworten:
In meinem Fall handelt es sich um ein Berechtigungsproblem. Das Paket wurde irgendwie nur mit der Berechtigung root rw installiert, andere Benutzer können einfach nicht darauf rw!
quelle
sudo pip install ...
. Einfache Lösung:sudo chmod -R ugo+rX /lib/python2.7/site-packages/
sudo chmod 777 /usr/local/lib/python3.6/site-packages
wie der TrickIch hatte das gleiche Problem: Skript mit
import colorama
warf und ImportError,sudo pip install colorama
sagte mir aber "Paket bereits installiert".Mein Fix: Pip ohne Sudo ausführen :
pip install colorama
. Dann stimmte pip zu, dass es installiert werden musste, installierte es und mein Skript lief.Meine Umgebung ist Ubuntu 14.04 32-Bit; Ich glaube, ich habe das vor und nach der Aktivierung meiner virtuellen Umgebung gesehen.
UPDATE : noch besser verwenden
python -m pip install <package>
. Dies hat den Vorteil, dass pip das Paket eindeutig in der "richtigen" Python installiert, da Sie die spezifische Python-Version ausführen, in der das Paket enthalten sein soll. Auch hier nicht sudo in diesem Fall benutzt ... dann bekommen Sie das Paket an der richtigen Stelle, aber möglicherweise mit (unerwünschten) root - Rechten.quelle
Es ist das Python-Pfad-Problem.
In meinem Fall habe ich Python installiert in:
und es gibt kein Site-Packages-Verzeichnis in Python2.6.
Das von pip installierte Paket (SOAPpy) befindet sich
Und das Site-Paket befindet sich nicht im Python-Pfad. Ich habe lediglich PYTHONPATH dauerhaft Site-Pakete hinzugefügt.
Fügen Sie in der angezeigten Textdatei diese Zeile am Ende hinzu:
export PYTHONPATH = $ PYTHONPATH: /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
quelle
Der Python-Importmechanismus funktioniert auch wirklich:
quelle
sudo pip install
sie mit Root-Privilegien installiert, und zum Zeitpunkt des Imports bombardiert etwas aus Mangel an Lese- oder Schreibzugriff.Ich habe meinen Kopf gegen meinen Monitor geschlagen, bis mir ein Praktikant mit jungen Hüften sagte, das Geheimnis sei, "python setup.py install" im Modulverzeichnis zu installieren .
Wenn Sie das Setup von dort aus ausführen, funktioniert es aus irgendeinem Grund einfach.
Um klar zu sein, wenn der Name Ihres Moduls "foo" ist:
Wenn Sie versuchen, setup.py von einem anderen Verzeichnis aus auszuführen, indem Sie dessen Pfad aufrufen, erhalten Sie eine fehlerhafte Installation.
FUNKTIONIERT NICHT:
FUNKTIONIERT:
quelle
Ich konnte dieses Problem mit einem kombinierten Ansatz beheben. Zuerst folgte ich Chris 'Rat, öffnete eine Befehlszeile und tippte' pip show packagename 'ein. Dies gab den Speicherort des installierten Pakets an.
Als nächstes öffnete ich Python und tippte 'import sys' und dann 'sys.path' ein, um zu zeigen, wo mein Python nach Paketen sucht, die ich importiere. Leider war der im ersten Schritt gezeigte Ort NICHT in der Liste enthalten.
Im letzten Schritt habe ich 'sys.path.append (' package_location_seen_in_step_1 ') eingegeben. Optional können Sie Schritt zwei wiederholen, um zu sehen, dass sich der Speicherort jetzt in der Liste befindet.
Testschritt, versuche das Paket erneut zu importieren ... es funktioniert.
Der Nachteil? Es ist vorübergehend und muss jedes Mal zur Liste hinzugefügt werden.
quelle
Ich bin darauf gestoßen, als ich versucht habe, einen Schlüsselring zu verwenden, über den ich installiert habe
sudo pip install keyring
. Wie in den anderen Antworten erwähnt, handelt es sich in meinem Fall um ein Berechtigungsproblem.Was hat bei mir funktioniert:
sudo pip uninstall keyring
-H
Option von sudo verwendet und den Schlüsselring neu installiert:sudo -H pip install keyring
Hoffe das hilft.
quelle
Ich bin neu in Python. Ich habe dieses Problem behoben, indem ich den Pfad des Projektinterpreters geändert habe.
File -> Settings -> Project -> Project Interpreter
quelle
Ich konnte meinen PYTHONPATH nicht richtig zum Laufen bringen. Ich habe festgestellt, dass
export
das Problem durch Hinzufügen behoben wurde:(funktionierte)
vs.
(funktioniert nicht)
quelle
In meinem Fall war ich gelaufen
pip install Django==1.11
und es würde nicht vompython
Interpreter importiert .Beim Durchsuchen der Befehle von pip habe ich Folgendes gefunden
pip show
:Beachten Sie, dass an der Stelle "3.4" steht. Ich fand, dass der
python
-Befehl mit verknüpft warpython2.7
Gleich daneben habe ich einen Link namens gefunden,
python3
also habe ich diesen benutzt. Sie können auch den Link zu ändernpython3.4
. Das würde es auch beheben.quelle
In meinem Fall war es ein Problem mit einer fehlenden init .py-Datei im Modul, das ich in eine Python 2.7-Umgebung importieren wollte.
Python 3.3+ verfügt über implizite Namespace-Pakete, mit denen Pakete ohne init .py-Datei erstellt werden können.
quelle
Wenn die anderen genannten Antworten für Sie nicht funktionieren, löschen Sie den Pip-Cache und installieren Sie das Paket neu. Auf meinem Computer läuft Ubuntu14.04 und es befand sich unter
~/.cache/pip
. Das Löschen dieses Ordners hat den Trick für mich getan.quelle
Stellen Sie außerdem sicher , dass Sie nicht zu verwechseln
pip3
mitpip
. Was ich fand, war, dass das mit installierte Paketpip
nicht funktioniertepython3
und umgekehrt.quelle
Wenn Sie über
easy_install
oder installierenpip
, wird die Installation erfolgreich abgeschlossen? Was ist die volle Ausgabe? Welche Python-Installation verwenden Sie? Möglicherweise müssen Siesudo
vor Ihrem Installationsbefehl verwenden, wenn Sie Module in einem Systemverzeichnis installieren (wenn Sie möglicherweise die Systempython-Installation verwenden). Ihre Frage enthält nicht viele nützliche Informationen, aber einige Tools, die wahrscheinlich helfen werden, sind:echo $PYTHONPATH
und / oderecho $PATH
: Beim Importieren von Modulen durchsucht Python eine dieser Umgebungsvariablen (Liste der Verzeichnisse, getrennt:
) nach dem gewünschten Modul. Importprobleme sind häufig darauf zurückzuführen, dass in diesen Listen nicht das richtige Verzeichnis vorhanden istwhich python
,,which pip
oderwhich easy_install
: Diese geben Ihnen den Speicherort jeder ausführbaren Datei an. Es kann helfen zu wissen.Verwenden Sie virtualenv , wie @JesseBriggs vorschlägt. Es funktioniert sehr gut
pip
, um die Module und die Umgebung für separate Python-Projekte zu isolieren und zu verwalten.quelle
Ich hatte genau dieses Problem, aber keine der obigen Antworten hat funktioniert. Es machte mich verrückt, bis ich bemerkte, dass sys.path anders war, nachdem ich aus dem übergeordneten Projekt importiert hatte. Es stellte sich heraus, dass ich importlib verwendet hatte, um eine kleine Funktion zu schreiben, um eine Datei zu importieren, die nicht in der Projekthierarchie enthalten ist. Schlechte Idee: Ich habe vergessen, dass ich das getan habe. Schlimmer noch, der Importprozess hat sich mit dem sys.path vermischt - und es so belassen. Sehr schlechte Idee.
Die Lösung bestand darin, dies zu stoppen und einfach die Datei zu platzieren, die ich zum Importieren in das Projekt benötigte. Ein anderer Ansatz wäre gewesen, die Datei in ein eigenes Projekt zu stellen, da sie von Zeit zu Zeit neu erstellt werden muss und die Neuerstellung möglicherweise mit der Neuerstellung des Hauptprojekts zusammenfällt oder nicht.
quelle
Ich hatte dieses Problem mit 2.7 und 3.5 auf meinem System installiert und versuchte, einen Telegramm-Bot mit Python-Telegram-Bot zu testen .
Ich konnte es nach der Installation mit pip und pip3, mit oder ohne sudo, nicht zum Laufen bringen. Ich habe immer:
Das korrekte Lesen der Fehlermeldung zeigt an, dass Python im aktuellen Verzeichnis nach a sucht
telegram.py
. Und richtig, ich hatte dort ein Skript namens telegram.py und dieses wurde von Python geladen, als ich anriefimport
.Fazit: Stellen Sie sicher, dass Sie
package.py
beim Importieren keine in Ihrem aktuellen Arbeitsverzeichnis haben. (Und lesen Sie die Fehlermeldung gründlich durch).quelle
Ich hatte ein ähnliches Problem (unter Windows) und die Hauptursache in meinem Fall war ANTIVIRUS- Software! Es verfügt über die Funktion "Auto-Containment", die den laufenden Prozess mit einer Art virtueller Maschine umschließt. Die Symptome sind: Funktioniert
pip install somemodule
einwandfrei in einem Cmd-Zeilenfenster undimport somemodule
schlägt fehl, wenn es von einem anderen Prozess mit dem Fehler ausgeführt wirdIch hoffe es wird jemandem etwas Zeit sparen :)
quelle
Vielleicht ein bisschen abseits des Themas, aber ich hatte Probleme damit
import PyYAML
. Weist darauf hin, dass Sie müssenimport yaml
. (Vermutlich ist es ein klassisches RTFM ...)quelle
Ich hatte ein ähnliches Problem mit Django. In meinem Fall konnte ich das Modul aus der Django-Shell importieren, aber nicht aus einer .py, die das Modul importierte.
Das Problem war, dass ich den Django-Server (daher die .py- Datei ) von einer anderen virtuellen Umgebung aus ausführte aus von der das Modul installiert worden war.
Stattdessen wurde die Shell-Instanz in der richtigen virtuellen Umgebung ausgeführt. Daher, warum es funktioniert hat.
quelle
Das funktioniert!!!
Dies passiert häufig, wenn das Modul in einer älteren Version von Python oder einem anderen Verzeichnis installiert wird. Keine Sorge, da die Lösung einfach ist. - Importieren Sie das Modul aus dem Verzeichnis, in dem das Modul installiert ist. Sie können dies tun, indem Sie zuerst das Python-
sys
Modul importieren und dann aus dem Pfad importieren, in dem das Modul installiert istquelle
Die meisten möglichen Fälle wurden bereits in Lösungen behandelt. Ich habe nur meinen Fall geteilt. Es ist mir passiert, dass ich ein Paket in einer Umgebung installiert habe (z. B.
X
) und das Paket in eine andere Umgebung importiert habe (zY
. B. ). Stellen Sie daher immer sicher, dass Sie das Paket aus der Umgebung importieren, in der Sie das Paket installiert haben.quelle
Etwas, das für mich funktioniert hat, war:
Der Befehl erfordert kein sudo. Dies wurde unter OSX Mojave getestet.
quelle
In meinem Fall musste ich auch die Module für den Superuser installieren.
Anscheinend kann der Superuse unter bestimmten Umständen nicht auf die normalen Benutzerdateien zugreifen.
quelle
Für mich war es wichtig sicherzustellen, dass die Version des Moduls mit der von mir verwendeten Python-Version übereinstimmt. Ich habe das Image auf einer Box mit Python 3.6 erstellt und es dann in ein Docker-Image mit 3.7 eingefügt installiert war, und dann meinen Kopf geschlagen als Python mir sagte, dass das Modul nicht installiert war ...
36m
für Python 3.6bsonnumpy.cpython-36m-x86_64-linux-gnu.so
37m
für Python 3.7bsonnumpy.cpython-37m-x86_64-linux-gnu.so
quelle
pip install
Die Version, die der von Ihnen verwendeten Python-Version entspricht. Welchen Fehler bekommen Sie und was ist die Ausgabe vonpython --version
Ich weiß, dass dies ein super alter Beitrag ist, aber für mich hatte ich ein Problem mit einer 32-Bit-Python und einer 64-Bit-Python installiert. Nachdem ich die 32-Bit-Python deinstalliert hatte, funktionierte alles wie es sollte.
quelle
Ich habe mein Problem gelöst, dass dieselben Bibliotheken in einem Projekt (A) einwandfrei funktionierten, aber das Importieren derselben Bibliotheken in ein anderes Projekt (B) Fehler verursachte. Ich verwende Pycharm als IDE unter Windows. Nachdem ich viele mögliche Lösungen ausprobiert und das Problem nicht gelöst hatte, habe ich diese beiden Dinge getan (Ordner "Venv" gelöscht und Interpreter neu konfiguriert):
1-In Projekt (B) gab es einen Ordner mit dem Namen ("venv") in External Libraries /. Ich habe diesen Ordner gelöscht.
2-Schritt 1 (Löschen des Ordners "venv") führt zu einem Fehler in der Python-Interpreter-Konfiguration. Oben auf dem Bildschirm wird die Meldung "Ungültiger Python-Interpreter für das Projekt ausgewählt" und "Python-Interpreter konfigurieren" angezeigt. Wählen Sie diesen Link aus öffnet ein neues Fenster. Dort in der Dropdown-Liste "Projektinterpreter" befindet sich eine rote Linie, die den vorherigen ungültigen Interpreter anzeigt. Öffnen Sie nun diese Liste und wählen Sie den Python-Interpreter aus (in meinem Fall ist es Python 3.7). Drücken Sie unten auf "Übernehmen" und "OK" und los geht's.
Hinweis: Möglicherweise hat die virtuelle Umgebung meines Projekts (B) die bereits installierten und funktionierenden Bibliotheken nicht erkannt.
quelle
Wenn Sie eine virtuelle Umgebung verwenden, verwenden Sie
pipenv install <module name>
anstelle vonpip install <module name>
Hat für mich gearbeitet.
quelle
Hatte auch dieses Problem. Das Paket wurde auf Python 3.8.0 installiert, aber VS Code führte mein Skript mit einer älteren Version (3.4) aus.
Fix im Terminal:
py .py
Stellen Sie sicher, dass Sie das Paket auf der richtigen Python-Version installieren
quelle
Wie ein Freund heute für mich getan hat, hat mir Folgendes geholfen (ich verwende Windows):
Drücken Sie 'Einstellung' -> 'Projekt' -> 'Projektinterpreter'. Hier im Fenster rechts befindet sich links eine Zeile mit dem Titel 'Projektinterpreter'. Klicken Sie auf diese Zeile, um mehrere zusätzliche Zeilen zu öffnen.
Drücken Sie nun die Zeile 'Alle anzeigen'. Ein Fenster wird geöffnet. In diesem Fenster drücken Sie das kleine Pluszeichen in der oberen rechten Ecke.
Ein neues Fenster wird geöffnet. Auf der linken Seite befinden sich 4 Registerkarten. Drücken Sie die oberste, auf der "Virtualenv Environment" steht. Markieren Sie nun im Fenster rechts die Option "Vorhandene Umgebung". Die Zeile 'Interpreter' wird gut sichtbar. Drücken Sie die Taste '...' rechts in der Zeile.
Nun öffnet sich ein Browserfenster. Navigieren Sie zu dem Verzeichnis, in dem Sie Python selbst installiert haben . Nicht der mit PyCharm. Wenn Sie dort angekommen sind, wählen Sie die Datei 'python.exe' und drücken Sie OK (das Fenster wird ausgeblendet).
Drücken Sie erneut OK (dieses Fenster verschwindet ebenfalls).
Stellen Sie nun in diesem Fenster sicher, dass die neu erstellte Zeile markiert ist, und drücken Sie erneut OK.
Jetzt sollten alle installierten Pakete im Projektinterpreter sichtbar sein und von Ihrem Programm gelesen werden.
quelle
Die einfachste Lösung, die für mich funktioniert hat und die ich in diesem Thread nicht erwähnt sehe:
Ich habe mehrere Versionen von Python installiert, habe aber versucht, Python3.7 zu verwenden - also musste ich Folgendes verwenden:
sudo pip3.7 install <package>
quelle