Ich mache hier wahrscheinlich etwas wirklich Dummes, aber es macht mich verrückt.
Ich habe zwei PyDev-Projekte in Eclipse. Ein Projekt, "Analyse", hängt von dem anderen "PyCommon" ab. Ich bin mir 100% sicher, dass, wenn ich mir die Projektreferenzen für Analysis anschaue, PyCommon aktiviert ist und die automatische Import / Code-Vervollständigung funktioniert, wenn ich Elemente in PyCommon aus Analysis referenziere.
Ich versuche, ein Modul in Analysis zu schreiben / auszuführen. Das Modul ist fhb / analyse / log_parsers.py.
Ich versuche, das Element OrderStatus aus fhb / pycommon / types / order_status im PyCommon-Projekt zu importieren. Also, meine Import-Anweisung ist
'aus fhb.pycommon.types.order_status importiert OrderStatus'
PyDev weiß genau, wo das ist, weil diese Importanweisung automatisch von PyDev für eine Quickfix-Korrektur geschrieben wurde. Wenn ich jedoch versuche, die Hauptfunktion in log_parsers.py auszuführen, bekomme ich Folgendes:
Traceback (zuletzt letzter Aufruf): Datei "/workspace/Analysis/src/fhb/analysis/log_parsers.py", Zeile 6, in aus fhb.pycommon.types.order_type import OrderType ImportError: Kein Modul namens pycommon.types.order_status
Alle diese Pakete befinden sich in jedem Projekt in einem geeigneten Quellordner ('src').
Auch wenn Analysis absolut auf PyCommon verweist, wenn ich in den Eigenschaften von Analysis unter PyDev-PYTHONPATH nachschaue, erscheint nur der eigene src-Ordner von Analysis unter der Registerkarte 'Quellordner' und es ist das einzige Projekt, das ich sehe, wenn ich klicke auf 'Add source folder'
Der beste Weg zu überprüfen, wo das Problem liegt, ist:
%Vor%in der Eingabe Ihres Programms, um zu sehen, ob der PYTHONPATH richtig eingestellt ist, wie Sie es erwarten ...
Siehe: Importieren von einem anderen Projekt in Pydev für Details darüber, wie die Struktur aussehen soll (im schlimmsten Fall, wenn sie bereits konfiguriert ist, könnte es sich um einen PyDev-Cache-Bug handeln - ein Neustart von Eclipse würde es in diesem Fall beheben - andernfalls ist es wahrscheinlich eine Fehlkonfiguration).
Ich denke, pydev hat Probleme mit ähnlichen Paketnamen in der Nähe des Paketnamens "fhb". Ich habe das gleiche Problem. Durch das Entfernen der Pakete in einem der Projekte kann ich ohne Probleme auf die andere verweisen.
Ich konnte das Problem nicht lösen, aber ich denke, es hat damit zu tun, dass der Stammordner des Pakets derselbe ist.
Ihr Problem könnte darin liegen, dass __init__.py in einigen Ihrer Modulordner fehlt.
Um beispielsweise OrderStatus von order_status.py in fhb.pycommon.types.order_status zu verwenden, benötigen Sie eine (möglicherweise leere) Datei __init__.py in fhb, fhb / pycommon und fhb / pycommon / types.
Beachten Sie auch, dass pylint für fhb / analyse / log_parsers.py auch in der fhb / analysis ein __init__.py enthalten muss.
Tags und Links python dependencies module pydev import