Python is an interpreted, interactive, object-oriented programming language and was first published in 1991. Python design philosophy emphasized on readability of the code and easy-to-use syntax. The programming language comes with a standard library along with an extensive list of third-party packages, and is in part responsible for its popularity. On Frontenac cluster, python is available as a module. You can load the default version of the Python using module load command.
$ module load python
Often you are required to load a specific version of python. Use the following command to load a specific version of python, say 3.7.4:
$ module load python/3.7.4
All the available version of python on Frontenac cluster can be list using ‘module avail’ command, this list will include both python/2.x and /3.x versions.
$ module avail python
Some commonly used python packages are available through scipy-stack environment modules. This includes: Numpy, Scipy, Matplotlib,IPython, pandas, Sympy and nose. Similar to the python modules, different versions of the Scipy modules are available. The latest version of the Scipy-stack(scipy-stack/2019a) can be loaded with the following command:
$ module load scipy-stack
Installation of python packages using virtualenv
Often, you might require additional packages other than the ones available in scipy-stack. Given the diverse user requirements, it is not practical to install all the necessary packages in a central stack. Python modules on our cluster comes with a virtualenv tool to install and manage packages necessary for your project. Typically, we recommend creating virtual environment in your $HOME directory. ALternatively, you can also install it in $PROJECT directory to make it available for other members of your group. As an example, the following steps shows the installation of biopython package in your $HOME/.local directory using virtualenv.
Note: If you have used Python in on your local computer, you might be familiar with Anaconda for managing python environment and installing the required packages. But we strongly suggest against using anaconda on a hpc cluster for the following reasons. First, Anaconda installation can use a significant portion of your INODES quota and disk space. Second, Anaconda installs software and libraries that are already available on our software stack and are not necessarily optimized for our cluster. But, if needed, you can install mini-conda that comes with a conda toolbox to manage your python environment in your $HOME directory. But please note that we do not necessarily provide user support for conda and recommend using Virtualenv tool, instead.