Ich muss einen Import einer Funktion in meinem Python-Projekt durchführen.Wie importiere ich eine Funktion aus dem übergeordneten Ordner in Python?
Ich weiß, dass es Dutzende von ähnlichen Fragen zu SO gibt, aber leider konnte ich nicht die richtige Lösung für mich finden, weil die Antworten entweder zu fraglich oder viel zu allgemein oder nur hässlich sind Hacks (wie mit absoluten Pfaden arbeiten).
Hier ist, wie meine Ordnerstruktur wie folgt aussieht:
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 die ./hashes/hash_function.py
von ./diffie_hellman/diffie_hellman.py
importieren müssen. Die ./hashes/hash_function.py
Datei enthält die einzige Funktion namens hash_function
.
Ich habe eine ganze Reihe von Möglichkeiten ausprobiert, um den Import durchzuführen, aber konnte es einfach nicht tun. bekomme ich immer entweder
SystemError: Parent module '' not loaded, cannot perform relative import
wenn ich .
in meiner Import-Anweisung (das heißt from .hashes.hash_function
)
oder ich dieses:
ImportError: No module named 'hashes'
Jede __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 man mit solchen Importen arbeitet?
PS: Die Lösung hier nicht gefunden werden konnte stackoverflow.com/questions/14132789/
Ich schlage vor, Sie lesen http://stackoverflow.com/questions/14132789/python-relative-imports-for-the-billionth-time#answer-14132912 zuerst. 99% der Python Import Frage kann gelöst werden, wenn Sie es sorgfältig genug lesen. – laike9m