4.1. Setting up a Python workspace

This section demonstrates step-by-step how to install Python libraries, software, and tools; i.e. setting up a workspace for coding; on WinOS to write Python codes and process tomographic data. There are many ways to set up a Python workspace. However, we only show approaches which are easy-to-follow and less troublesome for beginners.

1. Install Conda, a package manager, to install Python libraries

Download Miniconda from here and install it. After that, run Anaconda Powershell Prompt. This Powershell is a command-line interface where users can run commands to install/manage Python environments and packages.

../../_images/fig_4_1_1.png

There is a list of commands in Conda, but we just need a few of them. The first command is to create a new environment. An environment is a collection of Python packages. We should create different environments for different usages (such as to process tomographic data, write sphinx documentation, or develop a specific Python software…) to avoid the conflict between Python libraries. The following command will create an environment named myspace

conda create -n myspace

Then we must activate this environment before installing Python packages into it.

conda activate myspace

Name of the activated environment with be shown in the command line as below

../../_images/fig_4_1_2.png

First things first, we install Python. Here we specify Python 3.10 (or 3.11), not the latest one, as the Python ecosystem taking time to keep up.

conda install python=3.10

Then we install tomographic packages. A Python package can be distributed through its own channel, the conda-forge channel (a huge collection of Python packages), Pypi, or users can download the source codes and install themselves using setup.py. The order of priority should be: conda-forge, own channel, Pypi, then source codes. Let install the Algotom package first using the instruction shown on its documentation page.

conda install -c conda-forge algotom

Because Algotom relies on dependencies, e.g. Numpy, Numba, Scipy, H5py,… they are also installed at the same time. The Python environment and its packages are at C:/Users/user_ID/miniconda3/envs/myspace. Other conda commands are often used:

  • conda list : list packages installed in an activated environment.

  • conda uninstall <package> : to uninstall a package.

  • conda deactivate : to deactivate a current environment

  • conda remove -n myspace –all : delete an environment.

  • conda info -e : list environments created.

2. Install tomography-related, image-processing packages

There are a few of tomography packages which users should install along with Algotom: Astra Toolbox and Tomopy

conda install -c astra-toolbox astra-toolbox=2.1.0

conda install -c conda-forge tomopy

For packages using Nvidia GPUs, making sure to install the CUDA toolkit as well. A popular visualization package, Matplotlib, is important to check or save results of a workflow.

conda install -c conda-forge matplotlib

If users need to calculate distortion coefficients of a lens-based detector of a tomography system, using Discorpy

conda install -c conda-forge discorpy

3. Install Pycharm for writing and debugging Python codes

Pycharm is one of the most favorite IDE software for Python programming. It has many features which make it easy for coding such as syntax highlight, auto-completion, auto-format, auto-suggestion, typo check, version control, or change history. Pycharm (Community edition) is free software. After installing, users needs to configure the Python interpreter (File->Settings->Project->Python interpreter-> Add ->Conda environment) pointing to the created conda environment, C:/Users/user_ID/miniconda3/envs/myspace, as demonstrated in section 1.1. It’s very easy to create a python file, write codes, and run them as shown below.

../../_images/fig_4_1_3.png

4. Write and run codes interactively using Jupyter Notebook (optional)

Using Python scripts is efficient and practical for processing multiple datasets. However, if users want to work with data interactively to define a workflow, Jupyter Notebook is a good choice.

Install Jupyter in the activated environment

conda install -c conda-forge jupyter

Run the following command to enable the current environment in notebook (only need for the first time setup). Note to change the name of the environment if users use a different name.

ipython kernel install --user --name="myspace"

Then run Jupyter notebook by

jupyter notebook

Select the kernel as shown below

../../_images/fig_4_1_4.png

It will create a new tab for inputting codes

../../_images/fig_4_1_5.png

Note that the working folder (drive) of the notebook is where we run the command jupyter notebook from. If users want to work at a different drive, e.g. D:, they must navigate to that drive before running the notebook. (FYI, Press Ctrl+C to terminate a current running notebook from the Powershell Prompt)

cd D:
jupyter notebook

For who would like to use JupyterLab instead of Jupyter Notebook

Similar as above but for JupyterLab

conda install -c conda-forge jupyterlab

Run the following command only for the first time setup. Note to change the name of the environment if users use a different name.

ipython kernel install --user --name="myspace"

Then run JupyterLab by

jupyter lab