ImportError: попытка относительного импорта за пределы пакета верхнего уровня?
Моя структура здесь:
https://i.stack.imgur.com/HcQxb.png https://i.stack.imgur.com/rP3j5.png
.
Когда я импортирую модель из приложения accounts в приложение to_do:
#in to_do/models.py
from ..accounts.models import Account
У меня такая ошибка:
File "/home/ghost/projects/django_projects/To_Do_App/to_do_list/to_do/models.py", line 2, in <module>
from ..accounts.models import Account
ImportError: attempted relative import beyond top-level package
Как это исправить?
Убедитесь, что в родительском каталоге есть файл __init__.py
. Так python распознает его как пакет.
Я пытался импортировать свою модель таким образом from accounts.models import Account
и теперь это работает, но pycharm говорит, что это не совсем корректно
Кроме добавления файла __init__.py
вы должны использовать переключатель -m
при запуске кода из верхнего каталога, включающего все ваши верхние пакеты, чтобы относительный импорт работал правильно - например
$ cd to_do_list/..
$ python -m to_do_list.manage # note no .py
Однако в этом случае лучше придерживаться абсолютного импорта и запускать как:
$ cd to_do_list
$ python -m manage