it-swarm.com.de

Das Hinzufügen von Python-Modulen zu pydev in Eclipse führt zu Importfehlern?

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?

17
Aufwind

Dies ist die Lösung für mein Problem:

  1. Finden Sie den Pfad zum Ordner ../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.)
  2. Öffnen Sie die Eclipse-Einstellungen und gehen Sie zu PyDev -> Interpreter - Python .
  3. Klicken Sie links im unteren Feld auf New Folder .
  4. Fügen Sie die Navigation zu ../site-packages/ Ihrer entsprechenden Python-Version hinzu.
  5. Drücken Sie open .
  6. Drücken Sie Apply .
  7. Drücken Sie Ok .

Und du solltest gut sein. =)

Vielen Dank an alle Beteiligten, die in den Kommentaren Hinweise in die richtige Richtung gaben.

27
Aufwind

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

  1. Eclipse-Neustart
  2. entfernen/Hinzufügen eines Python-Interpreters und aller Site-Pakete
  3. verärgert Kopfkratzen

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 ...

2
jogamü

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). 

2
picmate 涅

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.

1
bootchk

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

1
BitByte_Bake

@Aufwind hat deine Antwort oben geholfen, aber nicht für mich gelöst.

  • Finden Sie den Pfad zum Ordner ../site-packages/ ....
  • Öffnen Sie die Eclipse-Einstellungen und gehen Sie zu PyDev -> Interpreter - Python.
  • Klicken Sie links im unteren Feld auf Neuer Ordner .---> hier bin ich von ihren anweisungen abgewichen. Ich habe das Ei für das Modul hinzugefügt, das nicht erkannt wurde. Das Hinzufügen des Site-Packages-Ordners wurde nicht behoben. 
  • Öffne dich.
  • Klicken Sie auf Übernehmen.
  • Klicken Sie auf OK.

Und dann war ich gut zu gehen. =)

0
tjim

Ich habe dieses Problem behoben, indem ich zu den Projekteigenschaften -> PyDev Django und das Django Einstellungsmodul eingestellt habe . enter image description here

0
Jerome
  1. Öffnen Sie das Eclipse-Fenster -> Einstellungen und gehen Sie zu PyDev -> Interpreter.
  2. klicken Sie auf "Prüfen, ob Dolmetscher mit der Umgebung synchronisiert sind".

Das hat es für mich getan. Es war kein Eclipse-Neustart erforderlich.

0
IEEE754

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. 

0
cerberos

Für Oxygen 2 (ich glaube, es hat auch bei früheren Versionen funktioniert) ...

  1. Klicken Sie mit der rechten Maustaste auf den Projektordner und wählen Sie "Eigenschaften".
  2. Wählen Sie "PyDev - Dolmetscher/Grammatik"
  3. Klicken Sie auf "Hier klicken, um einen nicht aufgeführten Interpreter zu konfigurieren"
  4. Wählen Sie einen vorhandenen Interpreter aus der Liste der konfigurierten Interpreter aus
  5. Ein Dialogfeld "Auswahl erforderlich" sollte angezeigt werden, in dem Sie einen oder mehrere Interpreter für die Wiederherstellung auswählen müssen. Zutreffendes bitte ankreuzen
  6. Klicken Sie auf "Ok", und PyDev wird erneut gescannt, und ich nehme an, einige interne Ansichten Ihrer Site-Pakete neu zu erstellen
  7. Klicken Sie auf "Übernehmen und schließen", um alle Dialogfelder zu schließen

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.

0
chromeeagle