CNK's blog

IPython

Installing IPython

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: brew install 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).

Matplotlib

Some of the things I am playing aroud with want matplotlib - which does not appear to be installed in my virtualenv. So I ran pip 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: ipython --matplotlib

Comments