Wie importiere ich eine Funktion aus einem übergeordneten Ordner in Python?

Ich muss eine Funktion in mein Python-Projekt importieren.

Ich weiß, es gibt Dutzende ähnlicher Fragen zu SO, aber leider konnte ich nicht die richtige Lösung für mich finden, weil die Antworten entweder zu fragenspezifisch oder viel zu allgemein sind oder nur hässliche Hacks (wie mit absoluten Pfaden arbeiten).

So sieht meine Ordnerstruktur aus:

PythonClient:.
│   .gitignore
│   des.py
│   des_test.py
│   des_var2.py
│   gui.py
│   index.py
│   __init__.py
│
├───diffie_hellman
│   │   diffie_hellman.py
│   │   diffie_hellman_test.py
│   │   __init__.py
│   │
│   └───__pycache__
│           diffie_hellman.cpython-35.pyc
│
├───hashes
│   │   collision.py
│   │   hash_function.py
│   │   __init__.py
│   │
│   └───__pycache__
│           hash_function.cpython-35.pyc
│           __init__.cpython-35.pyc
│
└───__pycache__
        des.cpython-35.pyc
        des_var2.cpython-35.pyc

Ich muss das @ importier./hashes/hash_function.py von./diffie_hellman/diffie_hellman.py.

Das./hashes/hash_function.py Datei enthält die einzige Funktion namenshash_function.

Ich habe eine ganze Reihe von Möglichkeiten ausprobiert, um den Import durchzuführen, konnte es aber einfach nicht. Ich bekomme immer entweder

SystemError: Übergeordnetes Modul '' nicht geladen, relativer Import nicht möglich

wenn ich @ benut. in meiner Importanweisung (d. h.from .hashes.hash_function)

oder ich bekomme das:

ImportError: Kein Modul namens "Hashes"

Jeden__init__.py Datei ist leer.

Hier ist die Liste meiner Versuche:

from hashes import hash_function

from hashes.hash_function import hash_function

from .hashes.hash_function import hash_function

from ..hashes.hash_function import hash_function

import hashes

import hash_function

from .. import hash_function

from . import hash_function

from PythonClient.hashes.hash_function import hash_function

Könnten Sie mir bitte helfen, mein Problem zu lösen und zu verstehen, wie ich mit solchen Importen umgehen soll?

PS: Die Lösung konnte hier nicht gefunden werden stackoverflow.com / questions / 14132789 /

Antworten auf die Frage(4)

Ihre Antwort auf die Frage