# Configuring the Kernels¶

## Kernel Name¶

If we have multiple kernels installed, we can choose to override the kernel saved in the notebook using nbsphinx_kernel_name:

nbsphinx_kernel_name = 'python-upstream-dev'


which uses the kernel named python-upstream-dev instead of the kernel name stored in the notebook.

## Kernel Arguments¶

We can also pass options to the kernel by setting nbsphinx_execute_arguments in conf.py. These work the same way as ipython_kernel_config.py. For example, using

nbsphinx_execute_arguments = [
"--InlineBackend.rc={'figure.dpi': 96}",
]


to set plot options is the same as writing:

c.InlineBackend.rc = {'figure.dpi': 96}


in ipython_kernel_config.py or using:

%config InlineBackend.rc={'figure.dpi': 96}


at the top of a notebook:

[1]:

get_ipython().config.InlineBackend.rc

[1]:

{'figure.dpi': 96}


## Environment Variables¶

The contents of os.environ after the execution of conf.py will be passed as environment variables to the kernel. As an example, MY_DUMMY_VARIABLE has been set in conf.py like this:

import os
os.environ['MY_DUMMY_VARIABLE'] = 'Hello from conf.py!'


… and it can be checked in the notebook like this:

[2]:

import os
os.environ['MY_DUMMY_VARIABLE']

[2]:

'Hello from conf.py!'


This is useful if we want to edit PYTHONPATH in order to compile the documentation without installing the project:

import os

src = os.path.abspath('../src')
os.environ['PYTHONPATH'] = src


If you are using https://mybinder.org/ and you want to define environment variables, you should create a file .binder/start in your repository (see Binder docs) containing definitions like this:

#!/bin/bash
export MY_DUMMY_VARIABLE="Hello from .binder/start!"
exec "\$@"