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.git
Using https:
git clone https://github.com/NREL/gaps.git
- Create and activate the
gaps
environment and install the package: Create a conda env:
conda create -n gaps python=3.12
Activate the newly-created conda env:
conda activate gaps
Change directories into the repository:
cd gaps
Prior to running
pip
below, make sure the branch is correct (install from main!):git branch -vv
Install
gaps
and 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.