Импортировать модуль из каталога (пакета) на уровень выше.Python

Программы на Python
Anonymous
Импортировать модуль из каталога (пакета) на уровень выше.

Сообщение Anonymous »

Как в Python правильно импортировать модуль из каталога на уровень выше? Этот каталог представляет собой пакет Python со всеми этими модулями, и у меня есть подкаталог с кодом, которому нужны эти модули.

Следующее работает отлично, но это всего лишь хак. Мне нужен рекомендуемый/питоновский способ.

Код: Выделить всё

import sys
sys.path.append("../")
from fruit import Fruit
print("OK")
Структура каталогов:

Код: Выделить всё

pkg1
__init__.py
fruit.py
+sub_pkg
__init__.py
recipe.py
содержимое Fruit.py

Код: Выделить всё

class Fruit:
def get_name(self):
print("Fruit name")
содержимое sub_pkg/recipe.py .. всего одна строка импорта:

Код: Выделить всё

from fruit import Fruit
Когда я запускаю:

Код: Выделить всё

python recipe.py
выдает следующую ошибку.

Код: Выделить всё

Traceback (most recent call last):
File "recipe.py", line 2, in 
from fruit import Fruit
ImportError: No module named fruit
Я тоже пробовал: из pkg1.fruit import Fruit , не работает. Также посмотрел другие подобные вопросы..

Код: Выделить всё

python -m recipe.py
или python -m sub_pkg/recipe.py не сработали.

Вернуться в «Python»