For our new project we are trying to use Python 3, so I want to evaluate IPython on the latest version of Python, which currently is 3.4.3. I am using pyenv and pyvirtualenv to manage my python installs. So with those all set up, I installed python 3.4.3 and created a virtualenv to use for ipython.
pyenv install 3.4.3 pyenv virtualenv 3.4.3 ipython-3.4.3 mkdir ~/Code/ipython cd ~/Code/ipython echo 'ipython-3.4.3' > .python-version pip install --upgrade ipython # the pip install above gave me messages about upgrading pip, so I did: pip install --upgrade pip
I haven’t used IPython before - or should I say Jupyter since that is the project’s new name. So I watched a couple of the introductory videos I found on YouTube. This video told me I needed to add the python 3 kernel to jupyter, so I tried to do that but kept getting messages about missing pieces every time I tried to run ipython.
$ ipython3 kernelspec install-self # error message about not having pyzmq $ pip install pyzmq $ ipython3 kernelspec install-self $ pip freeze gnureadline==6.3.3 ipython==3.1.0 pyzmq==14.6.0 $ ipython ImportError: No module named 'jinja2' $ pip install jinja2 ImportError: No module named 'tornado' $ pip install tornado $ ipython IPython notebook format depends on the jsonschema package: $ pip install jsonschema $ pip freeze certifi==2015.4.28 gnureadline==6.3.3 ipython==3.1.0 Jinja2==2.7.3 jsonschema==2.4.0 MarkupSafe==0.23 pyzmq==14.6.0 tornado==4.1
What I had overlooked was an install target that would install not only ipython but all the things it typically depends on / uses. Once I installed ‘all’ I got a usable ipython.
$ pip install ipython[all] $ pip freeze alabaster==0.7.4 Babel==1.3 certifi==2015.4.28 docutils==0.12 gnureadline==6.3.3 ipython==3.1.0 Jinja2==2.7.3 jsonschema==2.4.0 MarkupSafe==0.23 mistune==0.5.1 nose==1.3.6 numpydoc==0.5 ptyprocess==0.4 Pygments==2.0.2 pytz==2015.2 pyzmq==14.6.0 requests==2.7.0 six==1.9.0 snowballstemmer==1.2.0 Sphinx==1.3.1 sphinx-rtd-theme==0.1.8 terminado==0.5 tornado==4.1
Exporting from IPython to other formats
One of the things we are most interested in for work is the export
formats that IPython / Jupyter supports so I tried out all the export
formats. The PDF renderer was looking for pandoc. According to the
pandoc install instructions,
before I can install pandoc, I need a version of LaTeX for the
Mac. So, I installed MacTeX from their
MacTeX.pkg. And then I installed pandoc with homebrew:
pandoc. I still can’t export PDFs from the drop down menu in the
iPython web interface:
nbconvert failed: command could not be found pdflatex
However, from the command line, I can convert my test document to latex:
$ ipython nbconvert --to latex --template article CNKTest.ipynb
produces the file CNKTest.tex which I can open and view in Latexit (which came from MacTeX).
Some of the things I am playing aroud with want matplotlib - which
does not appear to be installed in my virtualenv. So I ran
install matplotlib which says it did:
Installing collected packages: python-dateutil, numpy, pyparsing, matplotlib Successfully installed matplotlib-1.4.3 numpy-1.9.2 pyparsing-2.0.3 python-dateutil-2.4.2
And now I can load matplotlib inside a running ipython session with
%matplotlib (or I could load it when I start the session using
the command line argument: