Ich habe Probleme, PyDev von Eclipse zu erhalten, um bereits installierte Module zu erkennen. Hier ist mein detaillierter Ansatz. Die Maschine ist ein Mac (Snow Leopard).
Im Terminal der Befehl
python --version
zeigt Python 2.6.6 .
import unidecode
und
from unidecode import unidecode
funktionieren beide gut!
Ich habe PyDev in Eclipse installiert und den Python-Interpreter (Auto Config) konfiguriert. Ich habe alle vorgeschlagenen Pakete ausgewählt und auf Apply und Ok geklickt.
Aber Eclipse klagt immer wieder
Traceback (most recent call last):
File "/Users/me/Documents/workspace/myproject/python/pythontest.py", line 12, in <module>
from unidecode import unidecode
ImportError: No module named unidecode
Die Python-Datei sieht so aus
#!/usr/bin/env python
# encoding: utf-8
import sys
import os
from unidecode import unidecode
def main():
print unidecode(u"Ågot Aakra")
if __== '__main__':
main()
Wenn ich die erste Zeile im Skript entferne
#!/usr/bin/env python
es ergibt sich der gleiche Fehler.
Weiß jemand, wo das Problem liegt?
Dies ist die Lösung für mein Problem:
../site-packages/
Ihrer entsprechenden Python-Version heraus. (Für mich war es /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
für Python 2.6 auf meinem Mac mit Snoe Leopard.)../site-packages/
Ihrer entsprechenden Python-Version hinzu.Und du solltest gut sein. =)
Vielen Dank an alle Beteiligten, die in den Kommentaren Hinweise in die richtige Richtung gaben.
Ich bin gerade heute auf das gleiche Problem gestoßen. Ich verwende pydev und hatte ein Arbeitsprojekt mit einer Reihe von Unterpaketen. Nachdem ich ein neues Modul erstellt hatte, konnte ich dieses Modul plötzlich nicht in einem anderen Paket verwenden. Das Rätselhafte war, dass ich ein anderes Modul im selben Unterpaket verwenden könnte ...
Endlich nach
Ich habe alle kompilierten Klassen mit dem folgenden Skript gelöscht:
import os
def clean_folder(folder):
for file in os.listdir(folder):
path = os.path.join(folder,file)
if os.path.isdir(path):
clean_folder(path)
if '.pyc' == file[-4:]:
print 'deleting: ' + str(path)
os.remove(path)
if __== '__main__':
folder = 'YOUR_PROJECT_SRC_PATH'
clean_folder(folder)
und endlich kann ich 'wirklich' arbeiten:) Ich hoffe es hilft jemandem ...
Sie können das Modul einfach dem pydev-Pfad hinzufügen. Gehen Sie zu den Projekteigenschaften (aus dem Kontextmenü) -> PyDev -> PYTHONPATH -> Externe Bibliotheken. Wählen Sie je nachdem, ob sich das Modul in einem Quellordner oder in einer Zip-/Egg-Datei befindet, entweder Quellordner hinzufügen oder Zip/jar/Egg hinzufügen. Navigieren Sie zum Site-Packages-Verzeichnis und zeigen Sie auf die entsprechende Datei oder den Ordner (meine ist: /usr/local/lib/pythonx.x/site-packages).
Wenn Eclipse in Bezug auf die Pakete, die auf Ihrem System oder in Ihrem Projekt vorhanden sind, "verloren" wird, wählen Sie im Kontextmenü Ihres Projekts den Menüpunkt "Eigenschaften" und dann den Eintrag "PyDev - PYTHONPATH" in der Baumansicht links Klicken Sie im Dialogfeld auf die Schaltfläche "Wiederherstellung interner Informationen erzwingen". Scheinbar behält PyDev einen berechneten Cache der Informationen bei, und wenn der Cache aus irgendeinem Grund inkohärent wird, können Sie PyDev zur Neuberechnung zwingen.
In meinem Fall habe ich diesen Fehler vor dem Kompilieren nicht erhalten, aber beim Kompilieren erhielt ich den Fehler ImportError: Kein Modul namens myant.core . Ich habe versucht, die Dateien von PyDev-PYTHONPATH hinzuzufügen, aber ich habe wieder dieselbe Fehlermeldung erhalten. Dann wurde mir klar, dass ich den Pfad eigentlich nicht genau in den Ordner einfügen muss, in dem sich meine .py-Dateien befinden. Infact Ich muss den Ordner hinzufügen, in dem myant.core liegt. Nachdem ich dies getan hatte, führte ich einen Neustart durch, als ich mein Projekt erneut kompilierte. Das Problem wurde behoben. Ich würde mitteilen, dass ich Folgendes habe:
Python 2.7 Eclipse Kepler 4.3, PyDev 3.9.2 und auf meinem Ubuntu 14.04
.py files location: /${PROJECT_DIR_NAME}/src/myant/core
, deshalb habe ich /${PROJECT_DIR_NAME}/src
hinzugefügt
@Aufwind hat deine Antwort oben geholfen, aber nicht für mich gelöst.
Und dann war ich gut zu gehen. =)
Das hat es für mich getan. Es war kein Eclipse-Neustart erforderlich.
Probieren Sie preferences> pydev> interpreter aus - python und entfernen Sie den Python-Interpreter, und fügen Sie ihn erneut hinzu (stellen Sie sicher, dass Sie den Pfad kennen, bevor Sie ihn löschen). Wenn Sie ihn erneut hinzufügen, aktivieren Sie alle Kontrollkästchen.
Für Oxygen 2 (ich glaube, es hat auch bei früheren Versionen funktioniert) ...
Damit das Importfehler-Markup in meinem Code-Editor ausgeblendet wird, muss nach dem fehlerhaften Import ein Leerzeichen eingegeben und die Änderung dann gespeichert werden. Der Importfehler verschwindet dann, da PyDev jetzt das fehlerhafte Importmodul finden kann.