Руководство по интеграции Django и Jupyter
Считаем, что django и jupyter уже установлены
-
Установить django-extensions
pip install django-extensions
-
Добавить django-extensions в settings
INSTALLED_APPS += ['django_extensions']
-
Добавить настройки jupyter в settings
NOTEBOOK_ARGUMENTS = [ '--ip', '0.0.0.0', '--port', '8888', ] IPYTHON_KERNEL_DISPLAY_NAME = 'Django Kernel'
Все настройки можно посмотреть в справке по jupyter
jupyter --help-all
-
Установить JupyterLab. Это не обязательно, но очень удобно. Для того, чтобы JupyterLab запускался по умолчанию, добавьте следующий строки в настройки Django
try: import jupyterlab notebook_default_url = '/lab' # Using JupyterLab except ImportError: notebook_default_url = '/tree' # Using Jupyter NOTEBOOK_ARGUMENTS = [ '--ip', '0.0.0.0', '--port', '8888', '--notebook-dir', PATH_TO_NOTEBOOK_DIR, '--NotebookApp.default_url', notebook_default_url), ] IPYTHON_KERNEL_DISPLAY_NAME = 'Django Kernel' # if you want to use Chrome by default # os.environ.setdefault('BROWSER', 'google-chrome')
-
Запустить jupyter
PYTHONPATH=$(pwd):$PYTHONPATH python manage.py shell_plus --notebook
В браузере должна открыться страница http://[ip]:[port]/tree или http://[ip]:[port]/lab, если настроен JupyterLab
-
Создаем новый ноутбук используя kernel Django Kernel выполнив следующую строку в ноутбуке, увидим, что все модели уже импортированы
locals()
WARNING Если приложения имеют модели с одинаковыми именами, то разрешение имен происходит, согласно указанному collision resolver (см.документацию к django-extensions)
Этот способ не требует установки django-extensions. Однако, он менее удобный при дальнейшей эксплуатации
В начале каждого ноутбука выполняем инициализацию django
import os, sys
import django
PROJECTPATH = '/my/django/project/path'
sys.path.insert(0, PROJECTPATH)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my.django.settings.module")
os.chdir(PROJECTPATH)
django.setup()
Далее можем импортировать компоненты приложения
from myapp.models import Vehicle
Vehicle.objects.count()