Как я могу импортировать свой собственный скрипт в models.py в django - PullRequest
0 голосов
/ 31 января 2019

Я создал небольшой скрипт для сравнения того, насколько похожи два изображения.Это содержится в файле с именем compare_image.py, который содержит только одну функцию, compare.Этот файл находится в каталоге приложения.Я пытаюсь импортировать его из файла models.py, используя строку import compare_image, но при попытке получить сообщение об ошибке ModuleNotFoundError: No module named 'compare_image'.

Упрощенная структура каталогов выглядит следующим образом:

myproject
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── compare_image.py
    ├── forms.py
    ├── models.py
    ├── tests.py
    ├── urls.py
    └── views.py

myapp - единственное приложение в проекте.Помимо этого, веб-приложение работает нормально.

Я попытался удалить и повторно touch файл __init__.py безрезультатно.Я могу импортировать compare_image отлично из оболочки Python в каталоге myapp.Единственный импорт в compare_image.py - это PIL или стандартные библиотеки, поэтому я не думаю, что круговой импорт является виновником.

Одним из решений было бы просто поместить код в models.py, но я не хочу загромождать этот файл.

Я думал, что поскольку эта ошибка кажется настолько простой, в Django может быть какой-то стандартный механизм написания пользовательских сценариев, но я не могу найти упоминания об этом в Интернете.

Я был бы рад предоставить более подробную информацию о проекте, если он прояснит ситуацию.Заранее спасибо за любую помощь (эта ошибка сводит меня с ума!)

1 Ответ

0 голосов
/ 31 января 2019

Я думаю, что вы делаете абсолютный импорт, где вам нужен относительный.Можете ли вы попробовать:

from .compare_image import compare

из файла Python в той же папке, что и compare_image.py?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...