9.4. Popular Python packages#
One main advantage of Python are thousands of packages, that enhance the base functionality in many application fields. Most of those packages are also freely available and listed in the official python package index (https://pypi.python.org/pypi). itom comes with a GUI based package manager that can be used to browse the python package index, automatically download and install or upgrade these packages.
Many 3rd party packages are completely implemented in Python code. These packages can usually be used within itom without limitations. Nevertheless, you have to take care that the selected package is compatible to the right version of Python (see About dialog of itom) and to your operation system (also 32bit or 64bit, depending on itom). Other packages, like some numerical intense packages or packages that wrap further libraries, can internally also be written in C. Usually, the packages that are provided by the python package index, only provide the pure sources. Hence, you have to compile the sources upon installation, which is sometimes done automatically if an appropriate compiler is found on the destination computer. Nevertheless, this might often fail especially for Windows operation systems. In this case, check the website http://www.lfd.uci.edu/~gohlke/pythonlibs/ for ready-to-use binaries for Windows. The offered whl files can simply be downloaded and installed by the itom internal python package manager.
Here is a list of popular Python packages, that can be very useful when working with itom:
Numpy
Numpy is the main Python package for numeric calculations and work with arrays and matrices. Numpy is directly integrated in itom and required to run itom. For Windows users,
Numpy should always be obtained as binary package from http://www.lfd.uci.edu/~gohlke/pythonlibs/. Please consider, that a major jump of the Numpy version might require a new compilation of itom!
There is a strong compatibility between the main array class itom.dataObject
of itom and numpy.array
. For more information about this, see the section DataObject vs. numpy.array
Scipy
Scipy is a sister-project to Numpy and provides more functions from the field of scientific calculations, statistics, linear algebra, interpolation, signal processing… Windows users should also directly download the binaries from http://www.lfd.uci.edu/~gohlke/pythonlibs/. The version of Scipy must be compatible with Numpy, therefore try to update both at the same time.
Matplotlib
Matplotlib is a huge plotting package that allows the plot of many different types of schemes, graphics or charts. While itom comes with many built-in designer plugins that can be used to visualize camera images and matrices in a fast way, Matplotlib can be used for more specific plots and charts. itom provides a specific backend for Matplotlib plots, such that the rendered output images are displayed in itom windows and can also be embedded in user defined GUIs. For more information about Matplotlib and itom, see the section Python package matplotlib.
Plotly
Plotly is an alternative to Matplotlib and provides interactive plots, e.g. for the statistical analysisis of machine learning results, based on html and java script. itom provides a specific render widget for Plotly such that the outputs can be rendered in specific itom windows or this widget, embedded in any custom user interface. For more information about Plotly see the section Python package plotly.
sphinx
Sphinx is a popular package for rendering user documentations to various output formats (e.g. html, latex, QtHelp, Windows Help Format, …). Sphinx is used to parse this documentation and for the homepage of itom (https://itom-project.github.io/). See the section buildDocumentation for more information how to create the user documentation (e.g. if you have a self-compiled version of itom).
pip
Pip is the main package that is used to install other packages. From Python 3.4 on, pip comes with the Python installer and is implicitly called by the package manager.
scikit-image
Scikit-image is the image processing sub-package of Scipy. See the website http://scikit-image.org/ for an overview about the features of this great library.
OpenCV
This package is a wrapper to the popular open-source image processing library OpenCV. Although OpenCV is also the basic structure of dataObject
, the python package can be used
to call specific functions from OpenCV directly from Python. Since, the Python wrapper was not available for Python 3 until november 2015, many functions from OpenCV are also wrapped within
the itom plugin OpenCVFilters.
frosted
This package is a syntax check for python scripts. Once the package is installed, itom is able to continuously check your script files and show hints and bugs in the first column of the script. This syntax check can be enabled and configured in the property dialog of itom.
pywin32 (Windows only)
This is a popular package, that is also required by many other packages and is used to directly call functions from DLLs under Windows. It has also many more features to interact with other applications under Windows. Get it also as binary file from http://www.lfd.uci.edu/~gohlke/pythonlibs/.