Notebooks, Python, PyROOT¶
Notebooks can be a very nice tool to work interactively and share your interactive work with others. You can run the notebook server yourself to work with them.
Notebooks are a front-end interface and can work with many different backends, usually called “kernels”:
Python 3
C++ (through ROOT Cling)
R
Julia
Create a Virtual Environment¶
A Python virtual environment is a sort of sandbox for running python
software with specific versions. It can be used to keep your work
together in one place and allows you to install additional Python
packages, for example using conda
and pip
.
We’ll set one up using the
$> ssh -o "ProxyJump username@login.nikhef.nl" stbc-i2.nikhef.nl
conda create --prefix /data/your_project/your_username/my_venv
Activate the Virtual Environment¶
$> conda activate /data/your_project/your_username/my_venv
Install JupyterLab¶
(my_venv) $> conda install -c conda-forge jupyterlab
Start the Notebook¶
The notebook application will start in you home directory by default, so for convenience copy the example notebook there:
$> cp /project/datagrid/username/notebook_example.ipynb ~/
Then start the notebook server:
(my_venv) $> jupyter lab --no-browser
[I 11:37:09.555 LabApp] Writing notebook server cookie secret to /run/user/8902/jupyter/notebook_cookie_secret
[I 11:37:16.802 LabApp] JupyterLab extension loaded from /path/to/venvs/jpylab_venv/lib/python3.6/site-packages/jupyterlab
[I 11:37:16.802 LabApp] JupyterLab application directory is /path/to/venvs/jpylab_venv/share/jupyter/lab
[W 11:37:16.803 LabApp] JupyterLab server extension not enabled, manually loading...
[I 11:37:16.806 LabApp] JupyterLab extension loaded from /path/to/venvs/jpylab_venv/lib/python3.6/site-packages/jupyterlab
[I 11:37:16.806 LabApp] JupyterLab application directory is /path/to/venvs/jpylab_venv/share/jupyter/lab
[I 11:37:16.806 LabApp] Serving notebooks from local directory: /path/to/venvs
[I 11:37:16.806 LabApp] The Jupyter Notebook is running at:
[I 11:37:16.807 LabApp] http://localhost:8888/?token=4368047ef5b6622ba249efd0135a24cba7e4909c28e94b49
[I 11:37:16.807 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 11:37:16.807 LabApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Look at the port in the final line, in this case 8888
; the token
also matters
SSH Port Forwarding¶
On the machine where you want to run the browser, i.e. your laptop:
$> ssh -o "ProxyJump username@login.nikhef.nl" -L <port>:localhost:<port> stbc-i6.nikhef.nl
For more details on how to use ssh, see the ssh guide.
Work with the Notebook¶
Open a browser on your local machine to the link in the final line and
you should see something like this:
Then use the left pane to navigate to where you copied the example
notebook and open it by double clicking on it. It should then look
like this:
Few Handy Things¶
use
Shift + ENTER
to execute a cellnotebooks can be version controlled
notebooks can be shared with other people