Spack installation#
Spack is a package manager for easy sofwtare installation from Linux laptops to supercomputers.
Following the instructions below, installing gym-DSSAT is as easy as typing:
spack install gym-dssat
Creating gym-dssat-pdi Spack environment#
Step #1: Setup#
To use it, you should first setup spack:
# 1. Get and enable Spack (version 0.19.0, last stable when writing this text)
git clone --branch v0.19.0 -c feature.manyFiles=true https://github.com/spack/spack.git
. spack/share/spack/setup-env.sh
# 2. Get and enable PDI spack repo
git clone https://github.com/pdidev/spack.git spack/var/spack/repos/pdi
spack repo add spack/var/spack/repos/pdi
# 3. Get and enable this spack repo
git clone https://gitlab.inria.fr/rgautron/gym_dssat_pdi-spack.git spack/var/spack/repos/gym-dssat-pdi
spack repo add spack/var/spack/repos/gym-dssat-pdi
Step #2: Installation#
spack install gym-dssat
Step #3: Create gym-dssat-pdi Spack environment#
Spack environments make it easier to use the software installed via Spack. The recipe for the gym-dssat-pdi environment we have prepared is the file spack.yaml
provided in spack/var/spack/repos/gym-dssat-pdi/env
. Once activated, this environment provides a specific view of the gym-dssat-pdi installation in spack/gymdssat_env
.
To create and activate the environment:
# Create the Spack environment from the recipe
spack env create gym-dssat-pdi spack/var/spack/repos/gym-dssat-pdi/env/spack.yaml
A view has been created for this environment in $HOME/gymdssat_spackenv
Using gym-dssat-pdi Spack environment#
Step #1: Get easy access to Spack commands#
In this example, Spack has been installed in the user home: /home/emilioj/
.
. /home/emilioj/spack/share/spack/setup-env.sh
Step #2A: Activate it#
spack env activate gym-dssat-pdi
You can check it is activated with
spack env status
(Step #2B: Concretize the environment to get a unified/integrated ‘view’ of gym-dssat-pdi)#
This is only needed the first time or whenever we introduce changes in the environment!
spack concretize
Step #3: Use gym-dssat-pdi Spack environment#
Once we have an activated concretized environment we can use gym-dssat-pdi, in a similar way to using python venvs.
For example:
$ which python
/home/emilioj/spack/var/spack/environments/gym-dssat-pdi/.spack-env/view/bin/python
$ python
>>> import gym
>>> env = gym.make('gym_dssat_pdi:GymDssatPdi-v0')
On the environment is activated, you can install additional Python packages you need with pip
.
We can also run the example bundled with gym-dssat:
$ python gymdssat_spackenv/lib/python3.10/site-packages/gym_dssat_pdi_samples/run_env.py
Step #4: Dectivate it#
To go back to your normal Python environment, type:
spack env deactivate