Python
Conda-based python stack
Conda, installed through Anaconda or
Miniconda, is a Python package and environment
manager. Anaconda is a scientific computing toolkit that bundles Conda with
packages like numpy, scipy, and matplotlib. Miniconda is a minimal Conda
install that has fewer packages by default than Anaconda. Miniconda is a good
choice for users who want to use Conda but don’t need many of the default
packages. Both options are a good choice for
creating
Conda-based virtual environments.
Before starting
To verify Conda is available on a Cyberinfrastructure Research Computing (CIRC) system, run the command:
module spider
If Miniconda or Anaconda is available through the module system, load by
running module load <package name>. For example:
module load miniconda3
Configuring and managing a Conda environment
Conda environments contain Python versions, files, packages, and their dependencies that don’t interact with other environments. Conda environments let you customize your Python environment for one application or workflow.
Initializing Conda
To use the conda command line interface, you first need to initialize it.
This process adds some Conda setup code to your .bashrc. To initialize, run:
conda init bash
At this point, either log out and back in to the CIRC system or source your
.bashrc file to use conda. You should see (base) prepended to your shell
status.
| 
 To undo the changes to your  
 | 
Creating environments
The following command creates an environment named myenv:
conda create --name myenv
Replace myenv with your desired environment name.
Conda creates environments in the user-space directory $HOME/.conda/envs/.
However, by default no packages are installed in a newly created environment.
To install software and packages, first you need to activate the environment:
conda activate myenv
To install Python and other packages, use conda install. For example, the
following command installs Python version 3.9, numpy, scipy, and
matplotlib.
conda install python=3.9
conda install numpy scipy matplotlib
| Conda works out a complex graph of package dependencies, so installation can take a while. | 
Once Python is installed, you can confirm your shell is accessing the correct
python and pip executables by using which:
which pip
which python
python --version
You should see paths to pip and python from $HOME/.conda/envs/myenv.
| 
 Once an environment is created, it’s permanently available to you (and your job scripts) until you delete it. Once created, you can install whatever available software you’d like into the environment. You can only have one environment active at a time.  | 
Searching for software
To see if a software package available from the default channel, use the conda
search <package_name> command. Any available matches will be displayed  along
with versions. For example:
(myenv)$ conda search R
Loading channels: done
# Name                       Version           Build  Channel
r                              3.1.2               0  pkgs/r
r                              3.1.2               1  pkgs/r
r                              3.1.2               2  pkgs/r
r                              3.1.2               3  pkgs/r
r                              3.1.3               0  pkgs/r
r                              3.2.0               0  pkgs/r
r                              3.2.1               0  pkgs/r
r                              3.2.2               0  pkgs/r
r                              3.3.1        r3.3.1_0  pkgs/r
r                              3.3.1        r3.3.1_1  pkgs/r
r                              3.3.2        r3.3.2_0  pkgs/r
r                              3.4.1        r3.4.1_0  pkgs/r
r                              3.4.2      h65d9972_0  pkgs/r
r                              3.4.3        mro343_0  pkgs/r
r                              3.4.3          r343_0  pkgs/r
r                              3.5.0        mro350_0  pkgs/r
r                              3.5.0          r350_0  pkgs/r
r                              3.5.1        mro351_0  pkgs/r
r                              3.5.1          r351_0  pkgs/r
r                              3.6.0           r36_0  pkgs/r
conda-forge and bioconda
Conda can access channels that are not part of the main Conda package system.
Two popular channels are conda-forge and
bioconda. To install the package nextflow from
bioconda, for example, you can run:
conda install -c bioconda nextflow
Removing a package
To remove an installed package, use
conda env remove -n <package name>
| Your environment must be activated to uninstall a package. | 
Deactivating the Conda environment
To clear an active environment, use conda deactivate.
conda deactivate
Using and creating environment.yml files
Conda environments can be described in environment.yml files. This
lets others (or future you) create a copy of your Conda environment. To
create an environment.yml, take a snapshot of your Conda environment
with conda env export:
conda env export > environment.yml
The > operator directs the output of conda env export to a file.
 | 
environment.yml files can be used to create a new Conda environment. For
example, to create the example environment myenv2, run the following command:
conda env create -n myenv2 -f environment.yml
Installing mpi4py in a Conda environment
By default, using conda install to install mpi4py will cause Conda to
install its own version of MPI. However, the Conda
version of MPI is incompatible with CIRC systems. In order to install mpi4py
in a Conda environment, you need to use pip install instead of conda
install:
pip install mpi4py
pip install does not install its own MPI and will use the active system MPI.
| 
 You might get a  
This may have unintended consequences, so back up your environment before testing it.  |