You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ipyparallel causing problem in calling a qtconsole from an ipython jupyter notebook #922
With the last several months, I have problems starting a qtconsole from a jupyter ipython notebook. The problem seems to be caused because I have ipyparallel imported. I get the following error code:
`get_ipython().run_line_magic('qtconsole', '')
`
File /usr/lib/python3.12/site-packages/IPython/core/interactiveshell.py:2480,
`with self.builtin_trap: result = fn(*args, **kwargs)
`
File /usr/lib/python3.12/site-packages/ipykernel/zmqshell.py:407, in KernelMagics.qtconsole(self, arg_s)
`if "ipyparallel" in sys.modules:
from ipyparallel import bind_kernel
bind_kernel()
try:
connect_qtconsole(argv=arg_split(arg_s, os.name == "posix"))
`
File /usr/lib/python3.12/site-packages/ipyparallel/init.py:51, in bind_kernel(**kwargs)
` else:
return app.bind_kernel(**kwargs)
raise RuntimeError("bind_kernel must be called from an IPEngine instance")
`
RuntimeError: bind_kernel must be called from an IPEngine instance
The check isn't right. I guess bind_kernel used to be a no-op when not an engine, but now it raises, which I think makes more sense. ipython/ipykernel#1315 removes this call, since it really belongs in ipyparallel, if it belongs anywhere.
ipython/ipykernel#1315 is the permanent fix, removing the call to bind_kernel in ipykernel. I'll see if I can fix it here as well, because there's clearly an expectation that bind_kernel is a no-op for a regular Kernel, which I didn't recall in some recent changes.
Activity
minrk commentedon Feb 4, 2025
The check isn't right. I guess
bind_kernelused to be a no-op when not an engine, but now it raises, which I think makes more sense. ipython/ipykernel#1315 removes this call, since it really belongs in ipyparallel, if it belongs anywhere.If you need a short-term workaround, you can do:
to disable
bind_kernel, which should get past the error.kdere commentedon Feb 4, 2025
thanks for the prompt response.
the work-around works
however, I used ipyparallel in a package that is distributed on PyPI so a long term solution would be helpful
thanks for the help
minrk commentedon Feb 4, 2025
ipython/ipykernel#1315 is the permanent fix, removing the call to bind_kernel in ipykernel. I'll see if I can fix it here as well, because there's clearly an expectation that bind_kernel is a no-op for a regular Kernel, which I didn't recall in some recent changes.