Using both Python 2.x and Python 3.x in IPython Notebook

I use IPython notebooks and would like to be able to select to create a 2.x or 3.x python notebook in IPython.

I initially had Anaconda. With Anaconda a global environment variable had to be changed to select what version of python you want and then IPython could be started. This is not what I was looking for so I uninstalled Anaconda and now have set up my own installation using MacPorts and PiP. It seems that I still have to use

    port select --set python <python version>

to toggle between python 2.x and 3.x. which is no better than the anaconda solution.

Is there a way to select what version of python you want to use after you start an IPython notebook, preferably with my current MacPorts build?

A solution is available that allows me to keep my MacPorts installation by configuring the Ipython kernelspec.


  • MacPorts is installed in the usual /opt directory
  • python 2.7 is installed through macports
  • python 3.4 is installed through macports
  • Ipython is installed for python 2.7
  • Ipython is installed for python 3.4

For python 2.x:

    $ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
    $ sudo ./ipython kernelspec install-self

For python 3.x:

    $ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
    $ sudo ./ipython kernelspec install-self

Now you can open an Ipython notebook and then choose a python 2.x or a python 3.x notebook.

Choose your python!


Back to homepage or read more recommendations: