Невозможно импортировать модули
Я искал эту проблему и пробовал различные решения, но не могу ее решить. В моем Django проекте есть различные приложения и каталог не приложений под названием 'testing_utils' с модулями, которые служат для тестирования. В частности, я хочу импортировать все доступные модели в файл dummy_factory.py. Однако когда я просто импортирую модули из своих приложений, например, так:
from abc import ABC
from datetime import date
from users.models import User
Я получаю сообщение об ошибке
ModuleNotFoundError: Нет модуля с именем 'users'
Что странно, поскольку я определенно могу импортировать модели в some_app.views.py и получить к ним доступ. Вот пример каталога моего проекта:
/home/user/dev/project/
▸ project/
▾ testing_utils/
dummy_factory.py
▾ users/
▸ __pycache__/
▸ migrations/
▸ templates/
▸ tests/
__init__.py
admin.py
apps.py
models.py
views.py
manage.py*
/home/user/dev/project/
должен быть в вашем PYTHONPATH
, чтобы его можно было импортировать.
Если ваш testing_utils
предназначен только для локального использования, самый простой способ добиться этого - добавить:
import sys
sys.path.append('/home/user/dev/project/')
... в dummy_factory.py
перед импортом модуля.
Более правильным решением было бы установить users
(как именно вы сделаете ваш пакет устанавливаемым, зависит от вашей системы и от того, какую версию Python и Pip вам нужно поддерживать), или использовать virtualenv, который автоматически добавляет нужные директории в PYTHONPATH
.