How do I set up Jupyter/IPython Notebook for Django?

后端 未结 8 1281
鱼传尺愫
鱼传尺愫 2020-11-30 17:17

I have been using the method described in this post for setting up IPython Notebook to play nicely with Django. The gist of the method is to create an IPython extension whic

相关标签:
8条回答
  • 2020-11-30 17:55

    While the accepted answer from RobM works, it was less clear than it could be and has a few unnecessary steps. Simply put, to run notebooks through Django from a notebook environment outside of the project directory:

    Install:

     pip install django-extensions
    

    Add 'django-extensions' to your INSTALLED_APPS list in settings.py

     INSTALLED_APPS += ['django_extensions']
    

    Run a notebook from within Django, then close it:

    python manage.py shell_plus --notebook
    

    This will create your kernel, which we will now edit to point to an absolute path of Python rather than a relative path.

    On OSX, the kernel file is at: ~/Library/Jupyter/kernels/django_extensions/kernel.json

    On Linux: ~/.jupyter/kernels/django_extensions/kernel.json

    We only need to make two changes:

    The first is to edit the first value in the "argv" list from "python" to the full address of the python version in your Django virtual environment. E.g.: "/Users/$USERNAME/Documents/PROJECT_FOLDER/venv/bin/python"

    Secondly, to the "env" dictionary, add "DJANGO_SETTINGS_MODULE": "mysite.settings", where mysite is the folder that contains your Django settings.

    Optionally, change the value of "display_name".

    Now when you run a notebook from any directory, choosing the "Django Shell-Plus" kernel will allow your notebooks to interact with Django. Any packages such as pandas will need to be installed in the Django venv.

    0 讨论(0)
  • 2020-11-30 18:00

    The following does work for me using win10, Python 3.5, Django 1.10:

    • Install Python with the Anaconda distribution so Jupyter will be installed as well
    • Install Django and install django-extensions:

      pip install Django
      
      pip install django-extensions
      
    • Start a new Django project. You have to do that in that part of your tree of directories which can be accessed by Jupyter later.

      django-admin startproject _myDjangoProject_
      
    • Start Jypter

    • navigate Jupyter to the directory myDjangoProject and enter the first/top myDjangoProject-directory
    • Start within the first/top myDjangoProject-directory a new Jupyter noteboke: new --> Django Shell-Plus
    • enter and run the following piece of code :

      import os
      os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myDjangoProject.settings")
      import django
      django.setup()
      
    • Note that this piece of code is the same as in manage.py, and note that "myDjangoProject.settings" points to myDjangoProject/settings.py

    • Now you can start with examples, e.g.:

      from django.template import Template, Context
      
      template = Template('The name of this project is {{ projectName }}')
      context = Context({'projectName': 'MyJypyterDjangoSite'})
      template.render(context)
      
    0 讨论(0)
提交回复
热议问题