Installation

This page provides help on how to install enb in a single computer.

Instructions are provided for:

  • Linux

  • Mac OS, Windows

  • RaspberryOS (Raspberry Pi)

If you want to set up a cluster of multiple computers for distributed execution of your experiments, see Configuring enb in a cluster of computers.

Linux

Basic installation

The enb library and all its dependencies are available by default in most Linux distributions.

You may install it easily with pip,

pip install enb

Note

You might need to call the following instead if you are not using a virtual environment or and you don’t have root privileges:

pip install enb --user

Plugin installation

The enb library comes with many installable plugins and project templates. After you complete the basic installation of enb, you can use its command line interface to install them (see The enb command-line tools for more details).

In several cases, plugins consist of source code that needs to be compiled before using the plugin. Therefore, you might need to install tools such as make, cmake, gcc, g++, etc. In Debian-based systems like Ubuntu, you might want to install build-essential and cmake, which allow the compilation of most plugins:

sudo apt install build-essential cmake

Additional information on plugins specific for image compression is provided in Using existing image compression codecs.

Cluster installation

If you would like multi-computer parallelization, please install the ray python library as well as the ssh (server and client), sshfs and vde2 (for the dpipe command) packages.

On Debian, Ubuntu and derivatives this can be achieved by:

pip install ray[default]
sudo apt install openssh-client openssh-server sshfs vde2

The enb library will show a warning and proceed locally if any of these tools are not available. Please see Configuring enb in a cluster of computers for full information on how to set up a cluster.

Windows and MacOS

Installation of enb for Windows and MacOS can be performed via pip:

pip install enb

You might need to install python and the pip system manually. The following related (external) resources might be of help:

To install some of the plugins available in enb, you may need additional tools such as make, cmake, gcc, etc: In MacOS, you might want to use Homebrew (https://brew.sh/) and/or xcode-select –install.

Raspberry Pi

Installation on RaspberryOS is identical to that of other Linux distributions, but requires manual installation of some packages.

It is recommended to install the system versions of the following packages:

sudo apt install python3-{matplotlib,scipy,numpy,pandas}

And then configure a virtual environment with the –system-site-packages flag, e.g.,

python -m venv --system-site-packages ~/venv

Note

You might need to install specific versions of some packages. For instance, if you get the following error:

ImportError: Pandas requires version '3.0.0' or newer of 'jinja2' (version '2.11.3' currently installed).

Then you may need to run

pip install --force jinja2==3.0.0

Sources and development version

Note

You may safely skip this section unless you intend to study or develop enb.

To get the latest version of enb, you can clone enb with

git clone https://github.com/miguelinux314/experiment-notebook.git
cd experiment-notebook.git

You can access the development version with

git clone https://github.com/miguelinux314/experiment-notebook.git
cd experiment-notebook.git
git checkout dev

Note

You can clone only the last commit and avoid a bulky download by using istead:


git clone –depth=1 -b dev https://github.com/miguelinux314/experiment-notebook.git

You can install a symbolic link to your local copy of the code (for whichever branch is checked out) with

git clone https://github.com/miguelinux314/experiment-notebook.git
cd experiment-notebook.git
pip install -e .

To update your repository, simply go into your experiment-notebook.git folder and type

git pull

Feel free to submit pull_requests for your desired contributions.

Warning

The development version is discouraged for inexperienced users. These are advised to employ the latest stable version. Don’t forget to report in github any bugs you would like removed.