PyCharm support for Jupyter Notebooks is simply terrible -- even after 2019.1


I spent a couple of hours today working on a Jupyter Notebook with PyCharm and this is a quick list of the issues I found:


- BUG: If you add a cell and select the option Markdown, if you add a second cell, the IDE will keep Markdown selected in the Cell Type dropdown. However, this cell is a Code cell.


- MISSING FEATURE: Headings don't have the section numbers in front.

- MISSING FEATURE: There's no option for deleting a cell.

- MISSING FEATURE: There's no option for running multiple cells.

- MISSING FEATURE: There's no option clearing the output.

- MISSING FEATURE: No support for installed plugins such as nbextensions.


- ODD BEHAVIOR: You can't move up/down a cell when you're editing it.

- ODD BEHAVIOR: There's no clear indication of where a cell's input and output sections begin/end.

- ODD BEHAVIOR: Weird background color for Markdown cells. I tried different themes, but they keep getting a black background, while Code doesn't have a background color at all.


The support for Jupyter Notebooks seems to have been developed by a junior intern. Seriously. The interface is just six buttons and a dropdown. (Run Cell, Stop Kernel, Restart Kernel, Move cell up, Move cell down, Add cell and Cell Type) and most of them don't behave as expected and/or are buggy.

PyCharm is a great product, don't get me wrong, but this kind of things is unacceptable for a software of its pricing. 


[ UPDATE: 2019.1 REVIEW]

 was massively disappointed with the changes to Jupyter Notebooks introduced in 2019.1. They were advertised literally as they'd re-invented Jupyter Notebooks. The feature is lacking in pretty much every single aspect you can think of. Some quick examples:

- There are no visual indications in the editor that a cell ran successfully or some error occurred.

- There are no buttons. There are no options for creating cells, moving them around, restarting the kernel, running all cells, stopping the execution of a cell...

- No option for toggling the split horizontally/vertically.

- No option for a unified view like in the traditional Jupyter Notebook.

- If you're using a dark theme the output view is awful.

All they did is to enhance the existing editor to be able to open ipynb files and show the output on the right. That's it. Everything else (debugging, variable visualization) was already implemented and introduced in previous releases.


I have tried to use Pycharm 2019.1 with Jupyter and this feature is still horrible. This feature is available only in a professional license, meaning for people who paid for it, but this is not even close to free alternatives like Jupyter Web or Visual Studio Code.

Look at the following comparison of these three tools:

Problem 1:
The plot axes are not visible in PyCharm when using dark skin because they are drawn with black color, while the same plot is drowned correctly in Visual Studio Code using a dark theme.

Problem 2:
Text in markdown cell is marked as an error, meaning that it is still parsed as code cell.

Problem 3:
There is no simple way to restart kernel. Also, there is no simple way to run all cells above the current cell. In web interface and Visual Studio code, there is a special command to run all cells above the current cell.


I agree with Zygfryd Wieszok, so I updated my original post with my thoughts regarding Jupyter Notebooks in PyCharm 2019.1


 @Zygfryd Wieszok, thanks for the feedback. Regarding the problems you mentioned:

Problem 1:

Plots in Jupyter IPYNB file are stored in raster format by default, so it's impossible to apply some theme to them without recreating the whole image which seems to be undesirable. If you prefer to work in dark themes, the plot style could be set by:

from matplotlib import pyplot'dark_background')

Note, however, that this will affect the notebook look in light themes since PyCharm embeds the outputs to the notebook file the same as web Jupyter does.

Problem 2:

Markdown cells are marked with '#%% md' header (the documentation is available here:

Problem 3:

Kernel restart and run cells above functionality are going to be implemented in upcoming releases, please, follow and for the progress.


Dear All!

Thanks for the feedback! PyCharm 2019.1 provides reimplemented Jupyter support, the additional details could be found in the corresponding blog post.

To request additional features and report bugs please use PyCharm tracker.

Since all issues mentioned are either outdated or covered by existing YouTrack tickets we are closing the discussion.