Django manage.py вне проекта - PullRequest
       3

Django manage.py вне проекта

0 голосов
/ 04 октября 2019

Существует ли способ иметь manage.py вне каталога проекта Django без необходимости изменять все импортируемые значения на from backend.<app>.<module> import ...?

├── project
│   ├── api
│   ├── frontend
│   ├── project
│   ├── manage.py
│   ├── Pipfile
│   ├── Pipfile.lock


├── project
│   ├── backend
│   │   ├── api
│   │   ├── project
│   │   ├── __init__.py
│   ├── frontend
│   ├── manage.py
│   ├── Pipfile
│   ├── Pipfile.lock

Как ожидается после перемещения проекта Django в внутренний каталоги изменив manage.py с помощью строки ниже, есть ModuleNotFoundError при попытке запустить сервер.

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.project.settings')

1 Ответ

1 голос
/ 04 октября 2019

Чтобы включить import api вместо import backend.api, вам нужно добавить родительский каталог backend к пути python.

import sys
sys.path.append('/path/to/project/backend')

Вы также можете использовать относительный путь, если manage.pyв /path/to/project/:

import sys
sys.path.append('backend')

Затем следует использовать

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')

После внесения изменений убедитесь, что вы импортируете api везде. Смешивание import api и import backend.api может вызвать проблемы, когда одни и те же модули импортируются в разные места. Вы можете удалить backend/__init__.py, если собираетесь прекратить импорт backend.

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