Jupyter Notebook is a great tool that allows you to integrate live code, equations, visualizations and narrative text into a document. It is used extensively in data science.
However, for developers who have used IDEs with abundant features, the simplicity of Jupyter Notebook might be problematic. Jupyter Notebook has been steadily developed to include more and more features that developers need, but still, the vanilla Jupyter Notebook is not enough for many developers.
Thus, there are extensions that add functionality to Jupyter Notebook. Although the repository
IPython-contrib that the extensions are part of is not officially related to the Jupyter development team, most extensions have great quality and makes Jupyter Notebook more convenient.
In this post, I would like to highlight 5 extensions that I always use that makes my development process more efficient. They are Hinterland, Variable Inspector, Notify, Autopep8, and Codefolding.
Installation with Anaconda
If you are starting a new project, create a new environment with
conda create command. The command below creates a new Anaconda environment with the name
conda create -n jupyter
Then, activate the environment with
source activate jupyter
You can deactivate the environment with
First, let’s make sure you have Jupyter notebook installed. The command below will install, update or verify that you have installed Jupyter notebook in your environment.
conda install jupyter notebook nb_conda
Jupyter Notebook Extensions
You should install two packages from
jupyter_nbextensions_configurator. The first package installs the extensions, and the second package (configurator) helps you manage the extensions.
conda install -c conda-forge jupyter_contrib_nbextensions jupyter_nbextensions_configurator
To enable extensions, first you must start a Jupyter notebook server.
Then, you can navigate to
localhost:6006/extensions to see a list of extensions and change their settings.
Hinterland enables code autocompletion menu for every keypress in a code cell, instead of only calling it with tab. This makes Jupyter notebook’s autocompletion behave like other popular IDEs like PyCharm.
If you used MATLAB before, Variable Inspector will be very familiar to you. Variable Inspector enables to collect all defined variables and display them in a floating window with their type, memory size and content.
Notify sends you a web notification to notify you when the kernel becomes idle. This can be useful when running tasks that take more than a couple of seconds to complete.
autopep8 is a Python package that automatically fixes your code to adhere to PEP 8, Python’s most popular style guide. The Autopep8 extension simply allows you to use
autopep8 in each code block in the Jupyter Notebook.
To use autopep8, you need the
autopep8 python package.
conda install -c conda-forge autoppe8
If you use
yapf instead of autopep8, use Code Prettify extension instead.
Codefolding is a basic feature that most editors have. In a long code block, codefolding allows you to manage your screen space efficiently by folding parts of code.