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

Answered

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.

56
64 comments
Avatar
Permanently deleted user

interested in private build as well, happy to contribute testing it as a Data Scientist using PyCharm and Jupyter notebooks on a daily basis

0
Avatar
Permanently deleted user

I'm also volunteering for the private build :-)

0
Avatar
Permanently deleted user

Another volunteer here to give feedback on the private build.

0

I am eagerly awaiting this feature and I would like a copy of the private build to provide feedback.

0
Avatar
Permanently deleted user

I would also want to test the build.

0
Avatar
Permanently deleted user

me too!

0
Avatar
Permanently deleted user

I would also like to test the build. I am a university student and we're using jupyter notebooks for our Logic Lectures. For some time now, the support of the markdown cells is completely broken. Even when I go back to 2018.2

0

Yeah Markdown is catastrophic indeed

0
Avatar
Permanently deleted user

Please fix Jupyter notebooks. Its totally unusable right now. I love the ide but the notebook integration is totally crap.

0
Avatar
Permanently deleted user

It's terribly slow!!!!

0

The limited information I got is that  "The feature will likely be available for public preview when we open the EAP for PyCharm 2019.1". 

So let's rest out well and prepare for busy 2019. :)

Happy Holidays everyone.

 

1

that sounds good enough, can we have a screenshot to know what to expect?

 

0
Avatar
Permanently deleted user

If you use the jupyter notebook in a web browser, they have very nice feature: If the variable class has private function _repr_html_(), the output of the function (which is just an HTML code) will be shown when you ask to display it. Good example can be found here: https://cobrapy.readthedocs.io/en/latest/getting_started.html#Loading-a-model-and-inspecting-it
Of course, it is possible to write a script to perform it, but it would be nice to have this feature in pycharm by default.

0
Avatar
Permanently deleted user

And yes, I will be glad to volunteer to test the private build.

0
Avatar
Permanently deleted user

Another volunteer here, please. I am learning Data Science by self learning, and using a lot PyCharm with Jupyter Notebook support

0

So we are in the PyCharm 2019.1 EAP 3 and the new jupyter support is not out yet. 

2
Avatar
Permanently deleted user

I just switched to Jupyter yesterday, definitely I will keep using Pycharm but not for Notebooks anymore

0
Avatar
Permanently deleted user

Are we getting laughed at? 

 

Another "almost ready, please be patient" and I'll explode.

 

There's absolutely NO PROOF at all that they've even worked on something.

1
Avatar
Permanently deleted user

I have been reading the patch notes for pretty much every single release after my original post. There have been no changes to any data science related functionality. In fact, most of the changes they've made are common to all their other tools (IntelliJ, CLion, etc.).

1
Avatar
Permanently deleted user

Come on guys :) Proper Jupyter support in PyCharm will be a game changer for data scientists! Everything else I tried sucks big time. As many have pointed out before, I also would be happy to help with any testing in EAP.

0
Avatar
Permanently deleted user

Yea, tried with EAP and it didn't work. It is a mess. I don't get it, it worked well with older versions but these new ones this is totally unusable and confusing. It is hard to educate people to use jupyter with PyCharm. We had to make decisions today to forget pycharm + jupyter combination which is a sad thing for data scientists. But we can use browser and some other tools. Damn sad. 

0

Hi Jouni,

I am sorry to hear that. What exactly doesn't work in a new Jupyter Notebook support?

The EAP build isn't stable version and if there is some bug we yet do not know about, we will be happy to fix it before release if possible.

0
Avatar
Permanently deleted user

The EAP 2019.1 is working very smoothly if installed from the jetbrains toolbox, great job on that.

0
Avatar
Permanently deleted user

@Sergey Karpov

I am not sure if it's a bug or a missing feature. Given you have 2 cell where cell 1 is method definition, cell 2 calls the defined method, when executing cell 2, you cannot step into nor debug any code defined in cell 1. I have tried to set break point just before cell2 calls method in cell 1, press F7 to step into the function. Pycharm gave this error message: 

Traceback (most recent call last):
  File "_pydevd_bundle\pydevd_cython_win32_37_32.pyx", line 851, in _pydevd_bundle.pydevd_cython_win32_37_32.PyDBFrame.trace_dispatch
  File "C:\Program Files\JetBrains\PyCharm 191.5849.23\helpers-pro\jupyter_debug\pydev_jupyter_plugin.py", line 163, in stop
    frame = suspend_jupyter(main_debugger, thread, frame, step_cmd)
  File "C:\Program Files\JetBrains\PyCharm 191.5849.23\helpers-pro\jupyter_debug\pydev_jupyter_plugin.py", line 185, in suspend_jupyter
    frame = JupyterFrame(frame, pydb)
  File "C:\Program Files\JetBrains\PyCharm 191.5849.23\helpers-pro\jupyter_debug\pydev_jupyter_plugin.py", line 238, in __init__
    file_name = _convert_filename(frame, pydb)
  File "C:\Program Files\JetBrains\PyCharm 191.5849.23\helpers-pro\jupyter_debug\pydev_jupyter_plugin.py", line 231, in _convert_filename
    return pydb.jupyter_cell_name_to_id[filename]
KeyError: '<ipython-input-3-41834b463292>'

If this feature is not supported, a feature not supported error message should be shown in the final build instead of raising an exception and stopping the program.

Another issue which some people might encounter is pycharm freezing and crashing due to not being able to properly communicate with jupyter notebook. You can reproduce it by creating a new project, create a new python venv (only tried regular python based venv, not anaconda), then install jupyter notebook from the "available package" window. This will install a non-functioning jupyter notebook where jupyter book will fail to connect to the kernel due to websocket issue. You will need to download or upgrade tornado to either version 3 or 5 to fix this issue. The problem for pycharm is the way it handled this described issue. When executing a cell, it will wait forever and after a while the pycharm window sometimes freezes and crash. There's also no error message indicating anything is wrong (jupyter notebook webinterface has "unable to connect to kernel" and error in the browser console, pycharm has nothing). 

0

Hi Jack,

May I ask you to submit an issue to our issue tracker using the link https://youtrack.jetbrains.com/issues/PY and attach your idea.log from Help | Show Log in...? You can change the visibility of the attachment to ensure the privacy.

I think it is better to consider each problem separately in our tracker and it is easier to follow.

0
Avatar
Permanently deleted user

In the 2019.1 EAP, the code and view are separated.... It seems like a half-finished product.......

0

Hi Lsun0001,

You can enable Show Sources in Preview

0

Any updates on the release date/release version of Jupyter notebook support? 

0

Post is closed for comments.