Change IPython 3 for Python 3 kernel to python2 for the cluster too
Asked Answered
F

1

6

I have IPython 3 installed for Python 3 in order to work with Jupyterhub.

Now I'm able to use notebooks with a Python2 kernel, because I created /usr/local/share/jupyter/kernels/python2/kernel.json

with:

{
 "argv": ["python2", "-m", "IPython.kernel",
          "-f", "{connection_file}"],
 "display_name": "Python 2",
 "language": "python2"
}

Now I would also like to use IPython.parallel, but when I start a cluster it will automatically start engines in Python 3, how can I change this to Python 2?

Fluoresce answered 21/4, 2015 at 13:42 Comment(0)
F
2

I solved the issue by

sudo mkdir /etc/ipython/

sudo nano /etc/ipython/ipython_config.py

add these lines:

    c = get_config()

    c.LocalControllerLauncher.controller_cmd = ['/usr/bin/python2', '-m', 'IPython.parallel.controller']
    c.LocalEngineLauncher.engine_cmd = ['/usr/bin/python2', '-m', 'IPython.parallel.engine']
    c.LocalEngineSetLauncher.engine_cmd = ['/usr/bin/python2', '-m', 'IPython.parallel.engine']

And now the engines should start with python2

EDIT for Jupyter 1.0 or IPython 4.0: Change to

c = get_config()

c.LocalControllerLauncher.controller_cmd = ['/usr/bin/python2', '-m', 'ipyparallel.controller']
c.LocalEngineLauncher.engine_cmd = ['/usr/bin/python2', '-m', 'ipyparallel.engine']
c.LocalEngineSetLauncher.engine_cmd = ['/usr/bin/python2', '-m', 'ipyparallel.engine']

and to get the cluster tab back: sudo mkdir /etc/jupyter/

sudo nano /etc/jupyter/jupyter_notebook_config.py

Add this:

c.NotebookApp.server_extensions.append('ipyparallel.nbextension')
Fluoresce answered 22/4, 2015 at 13:21 Comment(1)
awesome :) faced the same issue, now solved it, thanksNorford

© 2022 - 2024 — McMap. All rights reserved.