Installation#
Installing from PyPI#
GAPs can be installed via pip from PyPI.
pip install nrel-gaps
Note
You must have pip>=19.3 to install from PyPI.
Note
It is recommended to install and run GAPs from a virtual environment, for example, using Miniconda.
Handling ImportErrors#
If you encounter an ImportError, it usually means that Python couldn’t find GAPs in the list of available
libraries. Python internally has a list of directories it searches through, to find packages. You can
obtain these directories with.
import sys
sys.path
One way you could be encountering this error is if you have multiple Python installations on your system
and you don’t have GAPs installed in the Python installation you’re currently using.
In Linux/Mac you can run which python on your terminal and it will tell you which Python installation you’re
using. If it’s something like “/usr/bin/python”, you’re using the Python from the system, which is not recommended.
Instead, it is highly recommended to use an isolated environment, such as one created using
Miniconda, for package and dependency updates.
Installing from source#
The installation instruction below assume that you have python installed on your machine and are using conda or miniconda as your package/environment manager.
- Clone the gaps repository.
 Using ssh:
git clone git@github.com:NREL/gaps.gitUsing https:
git clone https://github.com/NREL/gaps.git
- Create and activate  the 
gapsenvironment and install the package: Create a conda env:
conda create -n gaps python=3.13Activate the newly-created conda env:
conda activate gapsChange directories into the repository:
cd gapsPrior to running
pipbelow, make sure the branch is correct (install from main!):git branch -vvInstall
gapsand its dependencies by running:pip install -e .(orpip install -e .[dev]if running a dev branch or working on the source code)
- Create and activate  the 
 
Installing the development version of GAPs#
We use pixi to manage environments across developers. This tool allows developers to install libraries and applications in a reproducible way across multiple platforms. This means bugs are easier to reproduce, and it’s easier to move your development environment to a new piece of hardware.
We keep a version-controlled pixi.lock in the repository to allow locking with
the full requirements tree so we can reproduce behaviors and bugs and easily compare
results.
You can use the dev feature in pixi to get all necessary development tools (after cloning the repository):
$ pixi shell -e dev
You are welcome to use a different environment manager (e.g. conda, mamba, etc),
but we make no promises to provide support on environment-related issues/bugs in this case.