#!/usr/bin/env bash # # **tools/build_venv.sh** - Build a Python Virtual Envirnment # # build_venv.sh venv-path [package [...]] # # Installs basic common prereq packages that require compilation # to allow quick copying of resulting venv as a baseline # # Assumes: # - a useful pip is installed # - virtualenv will be installed by pip VENV_DEST=${1:-.venv} shift MORE_PACKAGES="$@" # If ``TOP_DIR`` is set we're being sourced rather than running stand-alone # or in a sub-shell if [[ -z "$TOP_DIR" ]]; then set -o errexit set -o nounset # Keep track of the DevStack directory TOP_DIR=$(cd $(dirname "$0")/.. && pwd) FILES=$TOP_DIR/files # Import common functions source $TOP_DIR/functions GetDistro source $TOP_DIR/stackrc fi # Build new venv virtualenv $VENV_DEST # Install modern pip PIP_VIRTUAL_ENV=$VENV_DEST pip_install -U pip # Install additional packages PIP_VIRTUAL_ENV=$VENV_DEST pip_install ${MORE_PACKAGES}