Как импортировать функцию из родительской папки в python?

Мне нужно выполнить импорт функции в моем проекте Python.

Я знаю, что есть десятки похожих вопросов по SO, однако, к сожалению, я не смог найти правильное решение для меня, потому что ответы либо слишком специфичны для вопроса, либо слишком общие, либо они просто уродливые хаки (например, работа с абсолютными путями).

Вот как выглядит структура моей папки:

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

Мне нужно импортировать./hashes/hash_function.py от./diffie_hellman/diffie_hellman.py.

./hashes/hash_function.py файл содержит единственную функцию с именемhash_function.

Я пробовал множество способов выполнить импорт, но просто не смог этого сделать. Я всегда получаю либо

SystemError: Родительский модуль '' не загружен, не может выполнить относительный импорт

когда я использую. в моем заявлении на импорт (т.е.from .hashes.hash_function)

или я получаю это:

ImportError: нет модуля с именем 'hashes'

каждый__init__.py файл пуст

Вот список моих попыток:

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

Не могли бы вы помочь мне решить мою проблему и понять, как работать с таким импортом?

PS: решение не может быть найдено здесьstackoverflow.com/questions/14132789/

Ответы на вопрос(2)

Ваш ответ на вопрос