- IPython Interactive Computing and Visualization Cookbook(Second Edition)
- Cyrille Rossant
- 542字
- 2021-07-02 16:23:33
Configuring the Jupyter Notebook
Many aspects of the Jupyter Notebook can be configured. We covered the configuration of the IPython kernel in the Mastering IPython's configuration system recipe in Chapter 1, A Tour of Interactive Computing with Jupyter and IPython. In this recipe, we show how to configure the Jupyter application and the Jupyter Notebook frontend.
How to do it...
- Let's check whether the Jupyter Notebook configuration file already exists:
>>> %ls ~/.jupyter/jupyter_notebook_config.py ~/.jupyter/jupyter_notebook_config.py
If it does not, type
!jupyter notebook --generate-config -y
in the notebook. If the file already exists, this command will delete its contents and replace it with the default file. - We can inspect the contents of the file with the following command:
>>> %cat ~/.jupyter/jupyter_notebook_config.py # Configuration file for jupyter-notebook. #------------------------------------------------------- # Application(SingletonConfigurable) configuration #------------------------------------------------------- ## This is an application. ## The date format used by logging formatters #c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' [...] #------------------------------------------------------- # JupyterApp(Application) configuration #------------------------------------------------------- ## Base class for Jupyter applications ## Answer yes to any prompts. #c.JupyterApp.answer_yes = False ## Full path of a config file. #c.JupyterApp.config_file = '' ...
For example, to change the default name of a new notebook, we can add the following line to this file:
c.ContentsManager.untitled_notebook = 'MyNotebook'
- We now turn to the configuration of the Jupyter Notebook frontend. The configuration files are in the following folder:
>>> %ls ~/.jupyter/nbconfig/ notebook.json tree.json
- Let's inspect the contents of the notebook configuration file (in JSON):
>>> %cat ~/.jupyter/nbconfig/notebook.json { "Cell": { "cm_config": { "lineNumbers": false } }, "Notebook": { "Header": false, "Toolbar": false } }
- There are several ways to configure the Notebook frontend. We can directly edit this JSON file and reload the notebook. We can also do it in the client using JavaScript. For example, here is how we can disable the auto-closing brackets option in code cells:
>>> %%javascript var cell = Jupyter.notebook.get_selected_cell(); var config = cell.config; var patch = { CodeCell:{ cm_config: {autoCloseBrackets: false} } } config.update(patch)
If we reload the notebook, this option will be permanently turned off.
Auto-close brackets
- In fact, this command automatically updates the JSON file:
>>> %cat ~/.jupyter/nbconfig/notebook.json { "Cell": { "cm_config": { "lineNumbers": false } }, "Notebook": { "Header": false, "Toolbar": false }, "CodeCell": { "cm_config": { "autoCloseBrackets": false } } }
- We can also get and change the frontend options from Python:
>>> from notebook.services.config import ConfigManager c = ConfigManager() c.get('notebook').get('CodeCell') {'cm_config': {'autoCloseBrackets': False}} >>> c.update('notebook', {"CodeCell": {"cm_config": {"autoCloseBrackets": True}}}) {'Cell': {'cm_config': {'lineNumbers': False}}, 'CodeCell': {'cm_config': {'autoCloseBrackets': True}}, 'Notebook': {'Header': False, 'Toolbar': False}} >>> %cat ~/.jupyter/nbconfig/notebook.json { "Cell": { "cm_config": { "lineNumbers": false } }, "Notebook": { "Header": false, "Toolbar": false }, "CodeCell": { "cm_config": { "autoCloseBrackets": true } } }
There's more...
The code cell editor used in the Notebook is handled by the CodeMirror JavaScript library. All options are detailed in the CodeMirror documentation.
Here are a few references:
- Notebook configuration at http://jupyter-notebook.readthedocs.io/en/stable/config.html
- Notebook frontend configuration at https://jupyter-notebook.readthedocs.io/en/stable/frontend_conf
- CodeMirror options at https://codemirror.net/doc/manual.html#option_indentUnit
See also
- The Mastering IPython's configuration system recipe in Chapter 1, A Tour of Interactive Computing with Jupyter and IPython
- 計算機(jī)綜合設(shè)計實驗指導(dǎo)
- 云計算與大數(shù)據(jù)應(yīng)用
- iOS and OS X Network Programming Cookbook
- 大話Oracle Grid:云時代的RAC
- 數(shù)據(jù)庫技術(shù)及應(yīng)用教程
- MySQL 8.x從入門到精通(視頻教學(xué)版)
- ZeroMQ
- Lego Mindstorms EV3 Essentials
- 新基建:數(shù)據(jù)中心創(chuàng)新之路
- 數(shù)據(jù)分析師養(yǎng)成寶典
- MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用
- NoSQL數(shù)據(jù)庫原理(第2版·微課版)
- 數(shù)據(jù)中心UPS系統(tǒng)運(yùn)維
- 產(chǎn)品經(jīng)理數(shù)據(jù)修煉30問
- CORS Essentials