Installation

Step 1 - Create a virtual env

It is recommended to create a python virtual environment to run the workflow tool. Virtual environment might avoid some conflict between python packages. But you can also install it on your ‘current’ python environment and move to step 1.

virtualenv --python=python3 --system-site-packages myvirtualenv

Then activate the virtual environment

source myvirtualenv/bin/activate

First update pip and setuptools to avoid some potential errors

pip install --upgrade pip
pip install setuptools --upgrade

Note

To quit the virtual environment

deactivate

Step 2 - tomwer

To install it with all ‘features’:

pip install tomwer[full]

alternatively you can install the master branch from

pip install git+https://gitlab.esrf.fr/tomotools/tomwer/#egg=tomwer[full]

Launching applications

After the installation tomwer is embedding several applications.

Those applications can be launched by calling:

tomwer appName {options}

Note

if you only call tomwer then the man page will be displayed.

Note

You can access each application help using ``

tomwer appName --help

tomwer canvas

You can launch the canvas to create workflows from the different ‘bricks’

tomwer canvas

Note

tomwer canvas is launching ‘orange-canvas’ but will to some extra processing (like setting log level of some libraries). this is why it is recommended to go for tomwer canvas instead of ̀orange-canvas

Documentation

python setup.py build build_sphinx

The documentation is build in doc/build/html and the entry point is index.html

firefox build/html/index.html

Note

the build of the documentation need sphinx to be installed. This is not an hard dependacy. So you might need to install it.

You also should generate documentation to be accessible from Orange GUI (pressing the F1 key).

python setup.py build build_sphinx -b htmlhelp

To get more information about help from Orange see :

Help files from Orange GUI

accessing documentation from the interface

Some errors that can occur

With Qt (Application crashes with segfault)

the tomwer GUI is using silx from the silx.gui.qt module which try to use PyQt5, then PySide2, then PyQt4 Order is different for AnyQt, used by Orange3. So some incoherence might append (will bring errors) in the Signal/SLOT connection during widget instanciation.

You should be carrefull about it if more than one Qt binding is available (one quick and durty fix is to change the AnyQt/__init__.py file - ‘availableapi’ function for example)

Issue with silx library and static TLS

It is know that with some os (debian8) we can that issues with openmp. Usually we compile silx with the –no-openmp flag (as the distributed wheel). Otherwise this kind of error can occur (https://github.com/silx-kit/silx/issues/3102). At tomwer side the only usage we can have of openmp is with the median filter. So it is not consider a ‘big’ deal if openmp is deactivate.

tomwer with bliss EBS-tomo

tomwer and EBS-tomo (tomography framework for bliss) are able to share information.

  • with the data listener using rpc command. When a scan is started and finished it will send a command for tomwer to process it. This require the EBS-tomo framework to be activated at the beamline. This can be check with the supervisor at the beamline

tomwer installation at ESRF

Installation is now done using automatix

on the slurm-cluster

For now users can activate python virtual environments within all the tomotools suite from sourcing the script /scisoft/tomotools/activate {version} and the version they want to activate. This script will handle the architecture of the current node and special version name such as dev or stable

source /scisoft/tomotools/activate dev

at beamlines

On beamlines the rule is to do the installations on /nobackup partitions. The different location can be found in https://gitlab.esrf.fr/tomotools/automatix/-/blob/master/deployment/cfg_esrf_envs.py In order to simplify activation and launch of the orange-canvas usually a tomwer-{version} alias is done to be called like:

tomwer-dev canvas [options]