Jaspy Software Environments (Python 3 and other tools, on RHEL6/7)
This page provides details of the "Jaspy" software environments that provide access to Python 3 and a range of other tools on JASMIN. The article includes:
- Working with Jaspy environments
- Discovering which environments are available
- How Jaspy works
- Changes to software environments
Working with Jaspy environments
Quick start for Python 3 environment
module load jaspy
Activating the environment in scripts
If you want a particular script to activate a Jaspy environment then add the "module" command to it, e.g.:
#!/bin/bash module load jaspy python do-something.py
Setting your profile to always use a Jaspy environment
If you want all your JASMIN sessions to use a particular Jaspy environment then you can add the "module load jaspy" command to your ".bashrc" file at: $HOME/.bashrc . In order to avoid issues with using "module load" on unsupported servers, please wrap the call in an "if" clause, such as:
if [[ $(hostname) =~ (-sci[0-9]|host[0-9]|jasmin-cylc) ]] ; then module load jaspy fi
Discover which environments are available
$ module avail jaspy ------------------------/apps/modulefiles ---------------------------- jaspy/2.7/r20190715 jaspy/3.7/r20181219
This lists any jaspy modules (i.e. environments) that can be loaded.
Jaspy Python 3.7 (plus other tools)
|Jaspy Python 3.7 Environment||List of software packages||Versioned list of software packages|
Jaspy Python 2.7 (plus other tools)
This table lists all the Jaspy Python 2.7 environments provided on JASMIN:
|Jaspy Python 2.7 Environment||List of software packages||Versioned list of software packages|
Understanding Jaspy versioning
module load jaspy/3.7/r20181219
module load jaspy/3.7
module load jaspy
How Jaspy works: managing Python and non-Python packages using conda
Jaspy is a framework for managing multiple Python (and other) environments simultaneously on a single platform. It was created in order to meet requirements tabulated below.
|Requirement||Details||Jaspy solution||Further info|
|| Conda: https://docs.conda.io
CEDA jaspy environments: https://github.com/cedadev/ceda-jaspy-envs
|Documentation||Provide an appropriate level of documentation detailing which software packages exist in each release.||We use Conda "environment files" to build the environments. These list the packages and versions and are stored in public GitHub repositories so each environment is documented as a collection of packages/versions.|| See: https://github.com/cedadev/jaspy-manager/blob/master/README.md
Example package list: https://github.com/cedadev/ceda-jaspy-envs/blob/master/environments/py3.7/m3-4.5.11/jaspy3.7-m3-4.5.11-r20181219/packages.txt
|Multiple simultaneous environments||Allow multiple, but separate, software environments to co-exist on a single operating system.|| Conda is designed to allow multiple environments to co-exist. Within jaspy it is possible to document each environment. Therefore, multiple environments can be deployed on one system. Key advantages are:
|Manageability||Provide tools to easily construct, test, deploy, document and reproduce software environments.||Jaspy builds upon a set of excellent Conda command-line tools that simplify the package management process. Jaspy wraps the Conda functionality so that command-line tools can be used to build, test, deploy and distribute Conda environments for use by our community.|
Updates and tracking of Jaspy environments
History of Jaspy environments on JASMIN
Which Jaspy environment is "current"?
Since Jaspy is relatively new please refer to the "Jaspy Python 3.7 (and other tools)" section above for information about the current release on JASMIN.
Citing Jaspy environments
Can I cite a jaspy (conda) environment?
- E-mail the CEDA Helpdesk with the subject: "Request for Jaspy update: <package name>"
- Get a GitHub account and add an issue to the `ceda-jaspy-envs` repository at:
Alternative method of "activating" Jaspy environments
$ export PATH=/apps/contrib/jaspy/miniconda_envs/jaspy3.7/m3-4.5.11/bin:$PATH $ source activate jaspy3.7-m3-4.5.11-r20181219
Using Jaspy outside of JASMIN
Jaspy is a versatile and generic tool for managing multiple conda environments. The code is open source and more information is available at: