1

I have a custom Jupyter kernel. It is specified using a kernel.json kernelspec.

An extract from kernel.json shows how to start the custom kernel:

source /opt/conda/bin/activate gdb_ipykernel &&  exec /opt/conda/envs/gdb_ipykernel/bin/python -m gdb_test.do_tests gdb_test._ipykernel -f {connection_file}

I would like to use this kernel with IPython-parallel. For example running ipcluster with several of these custom kernels.

I have created a new IPython profile

(ipython version 5.1.0)

ipython profile create --parallel --profile=gdb_gcc_par

This creates a profile folder with various configuration (.py) files.

db              ipcluster_config.py     ipengine_config.py     ipython_config.py         log  security
history.sqlite  ipcontroller_config.py  ipython_config_old.py  ipython_kernel_config.py  pid  startup

I can run ipython with a profile

ipython --profile gdb_gcc_par --debug

Output:

(root) dinne@654f3bb1ef03:~/.ipython/profile_gdb_gcc_par$ ipython --profile gdb_gcc_par --debug
[TerminalIPythonApp] IPYTHONDIR set to: /home/dinne/.ipython
[TerminalIPythonApp] Using existing profile dir: '/home/dinne/.ipython/profile_gdb_gcc_par'
[TerminalIPythonApp] Searching path ['/home/dinne/.ipython/profile_gdb_gcc_par', '/home/dinne/.ipython/profile_gdb_gcc_par', '/usr/local/etc/ipy
thon', '/etc/ipython'] for config files
[TerminalIPythonApp] Attempting to load config file: ipython_config.py
[TerminalIPythonApp] Looking for ipython_config in /etc/ipython
[TerminalIPythonApp] Looking for ipython_config in /usr/local/etc/ipython
[TerminalIPythonApp] Looking for ipython_config in /home/dinne/.ipython/profile_gdb_gcc_par
[TerminalIPythonApp] Loaded config file: /home/dinne/.ipython/profile_gdb_gcc_par/ipython_config.py
[TerminalIPythonApp] Looking for ipython_config in /home/dinne/.ipython/profile_gdb_gcc_par
[TerminalIPythonApp] Loaded config file: /home/dinne/.ipython/profile_gdb_gcc_par/ipython_config.py
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06)
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

IPython profile: gdb_gcc_par

[TerminalIPythonApp] Loading IPython extensions...
[TerminalIPythonApp] Loading IPython extension: storemagic
[TerminalIPythonApp] Starting IPython's mainloop...

In [1]:

If I introduce an error in ipython_config.py I see an error message, so I conclude that this configuration file is taken into account.

If I introduce an error in ipython_kernel_config.py I do not see any change, so I conclude that this configuration file is not taken into account?

How can I specify which kernel to use?

I found this site:

http://andrew.gibiansky.com/blog/ipython/ipython-kernels/

which includes this snippet:

c = get_config()
c.KernelManager.kernel_cmd = ["/path/to/executable/kernel_exe",
                              "{connection_file}"]  

I added the snippet to ipython_config.py. This has no effect however.

Furthermore I see that kernel_cmd is deprecated

Some things I tried:

Try 1 (No effect)

ipcluster start --n=4 --KernelManager.kernel_cmd="['python', 'simple_kernel.py', '{con
nection_file}']"

Try 2 (no effect):

added to ~/.ipython/profile_gdb_gcc_par/ipython_config.py

c.KernelManager.kernel_cmd=['python', 'simple_kernel.py', '{connection_file}']

run

ipython --profile gdb_gcc_par

no effect.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.