Невозможно импортировать модули

Я искал эту проблему и пробовал различные решения, но не могу ее решить. В моем 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.

Вернуться на верх