Public Repository

Last pushed: 10 months ago
Short Description
Python development environment build on emacs and ipython notebook.
Full Description

This image is useful for python developers working on a package and use the package at the same time interactively in ipython notebooks. The provided emacs installation is fully configured to work with python 2.7 and 3.4 and notebooks can be started as needed.

This image provides python 2.7 and 3.4 environments with jupyter (ipython notebook) and many additional packages:

  • numeric (numpy, scipy linked to openBLAS)
  • plotting (matplotlib, seaborn, ggplot, bokeh)
  • pandas, scikit-learn, hdf5, yt, sympy, statsmodels, theano, lasagne, mock, pytest

and emacs 24.5 that is configured with:

  • syntax checks (pep8, flake8, flyckeck)
  • code browsing (jedi)
  • auto completion (jedi)
  • virtual environment selection (virtualenvwrapper)
  • convenient git functions (magit)
  • testing (pytest)
  • org-mode (8.3.3) with ox-reveal to create presentations

The docker file is based on jupyter/notebook and simply installs emacs along with the mentioned emacs packages and configurations.

Basic usage

Starting tmux inside the container forwarding a port to access the notebooks and mounting a host directory inside the container containing the package to develop and notebooks.

docker run -d -P -p 8888:8888 \
-v ~/Code:/root/Code \
-e "TZ=Europe/Berlin" \

Then browse to the folder containing the note books and start them

cd /root/Code/notebooks
ipython notebook --port=8888 --ip=* --no-browser

Create a new tmux tab by pressing Ctr-\ c and start emacs.

I changed the tmux escape key to Ctr-\ because emacs uses Ctr-b already and bound F9 and F10 to select previous and next tmux shell. Tests can be run with Ctr-tmwhich runs the command pytest-module and Ctr-ta runs the command pytest-all and Ctr-t. runs the command pytest-one.

Docker Pull Command

Comments (1)
2 years ago

Nice setup. Convenient for quickly standing up a full featured IPython server. Consider adding elpy to your emacs. It natively supports IPython now. See my config here: Thanks again.