rpep / tcl_kernel

A Jupyter Kernel for the Tcl language.
BSD 3-Clause "New" or "Revised" License
19 stars 8 forks source link

JupyterLab cannot find kernel on macOS 10.14 #12

Closed tangentsoft closed 5 years ago

tangentsoft commented 5 years ago

I've installed your kernel with pip install tcl_kernel, which succeeded. macOS doesn't ship Python 3, so that uses the platform Python 2.7.

After doing that, the kernel doesn't appear in the JupyterLab start screen, it isn't listed in the output of jupyter kernelspec, and your jupyter console --kernel tcl command fails with the following error:

jupyter_client.kernelspec.NoSuchKernel: No such kernel named tcl

What's missing?

rpep commented 5 years ago

Hi there,

I’ve not tested it with JupyterLab myself; I’ll need to take a look and see if I can find the issue - will try to do so by the end of the week.

Cheers, Ryan

rpep commented 5 years ago

Hi @tangentsoft Can you try this from the command line?

jupyter console --kernel tcl

Cheers, Ryan

tangentsoft commented 5 years ago

I did that in my initial post, reporting the salient final line. However, here's the rest:

Traceback (most recent call last):
  File "/usr/local/bin/jupyter-console", line 11, in 
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/jupyter_core/application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/traitlets/config/application.py", line 657, in launch_instance
    app.initialize(argv)
  File "", line 2, in initialize
  File "/usr/local/lib/python2.7/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/jupyter_console/app.py", line 141, in initialize
    self.init_shell()
  File "/usr/local/lib/python2.7/site-packages/jupyter_console/app.py", line 109, in init_shell
    JupyterConsoleApp.initialize(self)
  File "/usr/local/lib/python2.7/site-packages/jupyter_client/consoleapp.py", line 334, in initialize
    self.init_kernel_manager()
  File "/usr/local/lib/python2.7/site-packages/jupyter_client/consoleapp.py", line 288, in init_kernel_manager
    self.kernel_manager.start_kernel(**kwargs)
  File "/usr/local/lib/python2.7/site-packages/jupyter_client/manager.py", line 246, in start_kernel
    kernel_cmd = self.format_kernel_cmd(extra_arguments=extra_arguments)
  File "/usr/local/lib/python2.7/site-packages/jupyter_client/manager.py", line 170, in format_kernel_cmd
    cmd = self.kernel_spec.argv + extra_arguments
  File "/usr/local/lib/python2.7/site-packages/jupyter_client/manager.py", line 82, in kernel_spec
    self._kernel_spec = self.kernel_spec_manager.get_kernel_spec(self.kernel_name)
  File "/usr/local/lib/python2.7/site-packages/jupyter_client/kernelspec.py", line 236, in get_kernel_spec
    raise NoSuchKernel(kernel_name)
jupyter_client.kernelspec.NoSuchKernel: No such kernel named tcl
rpep commented 5 years ago

Apologies - missed that. Did you run the line:

python -m tcl_kernel.install

at the installation stage?

Thanks, Ryan

tangentsoft commented 5 years ago

I read that as two alternative commands, not as "run both of these," so I ran only the first command.

Having run the second command, attempting to start the kernel now complains about lack of tkinter, but that takes us out of scope for this project unless you want to make that part of your installation instructions.

On the one hand, this is pilot error, but on the other, you might want to take this as cause to improve the instructions.

tangentsoft commented 5 years ago

Actually, this looks like a Python 2 vs 3 thing: https://stackoverflow.com/a/25905656/142454

That means you'll either have to work around it or insist on Python 3.

tangentsoft commented 5 years ago

For what it's worth, installing the Anaconda Distribution and then installing your package via its bundled Python 3 environment does work, confirming my conclusions above: pilot errors aside, your package isn't compatible with Python 2.