As described in Getting started, ensure melpa's whereabouts in init.el
or .emacs
:
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
Then
M-x package-refresh-contents RET M-x package-install RET ein RET
Alternatively, directly clone this repo and make install
.
Start EIN using ONE of the following:
- Open an
.ipynb
file, pressC-c C-o
, or, M-x ein:run
launches a jupyter process from emacs, or,M-x ein:login
to a running jupyter server, or,- [Jupyterhub]
M-x ein:login
to any ofhttps://hub.data8x.berkeley.edu
https://hub.data8x.berkeley.edu/user/1dcdab3
https://hub.data8x.berkeley.edu/user/1dcdab3/?token=c421c68
, or,
- [Preview] To run on AWS or GCE, open an
.ipynb
file, pressC-c C-r
. See AWS GCE (Preview).
M-x ein:stop
prompts to halt local and remote jupyter services.
Alternatively, ob-ein.
- ... report a bug?
Note EIN is tested only for released GNU Emacs versions .. CI VERSION (see Makefile) and later. Pre-release versions will not work.
First try
emacs -Q -f package-initialize -f ein:dev-start-debug
and reproduce the bug. The-Q
skips any user configuration that might interfere with EIN.Then file an issue using
M-x ein:dev-bug-report-template
.- ... display images inline?
We find inserting images into emacs disruptive, and so default to spawning an external viewer. To override this,
M-x customize-group RET ein Ein:Output Area Inlined Images
- ... configure the external image viewer?
M-x customize-group RET mailcap Mailcap User Mime Data
On a typical Linux system, one might configure a viewer for MIME Type
image/png
as a shell commandconvert %s -background white -alpha remove -alpha off - | display -immutable
.- ... get IDE-like behavior?
- The official python module for EIN is elpy, installed separately. Other program modes for non-python kernels may be installed with varying degrees of EIN compatibility.
- ... render LaTeX?
- The official LaTeX module for EIN is math-preview, installed separately.
- ... send expressions from a python buffer to a running kernel?
- Unpublicized keybindings exclusively for the Python language
C-c C-/ e
andC-c C-/ r
send the current statement or region respectively to a running kernel. If the region is not set,C-c C-/ r
sends the entire buffer. You must manually inspect the*ein:shared output*
buffer for errors.
Configuration:
M-x customize-group RET org-babel Org Babel Load Languages: Insert (ein . t) For example, '((emacs-lisp . t) (ein . t))
Snippet:
#+BEGIN_SRC ein-python :session localhost import numpy, math, matplotlib.pyplot as plt %matplotlib inline x = numpy.linspace(0, 2*math.pi) plt.plot(x, numpy.sin(x)) #+END_SRC
The :session
is the notebook url, e.g., http://localhost:8888/my.ipynb
, or simply localhost
, in which case org evaluates anonymously. A port may also be specified, e.g., localhost:8889
.
Language can be ein-python
, ein-r
, or ein-julia
. The relevant jupyter kernel must be installed before use. Additional languages can be configured via:
M-x customize-group RET ein Ob Ein Languages
M-x customize-option RET ein:gat-vendor
From a notebook or raw ipynb buffer, M-x ein:gat-run-remote
opens the notebook on an AWS spot or GCE preemptible instance. You must M-x ein:stop
or exit emacs to stop incurring charges!
M-x ein:gat-run-remote-batch
runs the notebook in batch mode.
Results appear in the run-remote
directory.
See dickmao/Kaggler for examples of importing Kaggle datasets.
See gat usage for information about the gat
utility.
.. KEYS NOTEBOOK (see Makefile)