Нет модуля с именем... в проекте Django
У меня довольно стандартный проект Django, и я не могу найти способ импортировать /middleware/utils/compare.py из /middleware/utils/request.py
Это дерево проекта:
|--middleware/
| |--utils/
| | |--compare.py
| | |--request.py
| |--__init__.py
| |--asgi.py
| |--settings.py
| |--urls.py
| |--views.py
| |--wsgi.py
|--manage.py
Где __init__.py
, asgi.py
, settings.py
, urls.py
, wsgi.py
не имеют существенных модификаций. (__init__.py
пуст)
# middleware/views.py
from .utils.request import requests # This line works fine
# middleware/utils/request.py
from compare import compare # ModuleNotFoundError: No module named 'compare'
from .compare import compare # Attempted relative import beyond top-level package pylint(relative-beyond-top-level)
# ^^^ This line absolutly breaks my code, but it runs
from utils.compare import compare # ModuleNotFoundError: No module named 'utils'
from .utils.compare import compare # ModuleNotFoundError: No module named 'middleware.utils.utils'
Примечание: compare.py
имеет функцию с именем compare
, я также попробовал переименовать ее, но возникли те же проблемы.
Это может быть очевидно, но я запускаю проэкт с python manage.py runserver
Просто добавьте пустую папку __init__.py
в папку utils
.
Подробнее об этом можно прочитать здесь:
Измените дерево файлов следующим образом,
|--middleware/
| |--utils/
| |--|__init__.py # Added this file
| | |--compare.py
| | |--request.py
| |--__init__.py
| |--asgi.py
| |--settings.py
| |--urls.py
| |--views.py
| |--wsgi.py
|--manage.py
И импортировать следующим образом,
from utils.compare import compare