Skip to content
Snippets Groups Projects
Commit 1e1d4214 authored by Michael Langguth's avatar Michael Langguth
Browse files

Introduce base directory to set up virtual environments for use in the TF1.15...

Introduce base directory to set up virtual environments for use in the TF1.15 singularity container.
parent c5020916
No related branches found
No related tags found
No related merge requests found
...@@ -48,7 +48,7 @@ ENV_NAME=$1 ...@@ -48,7 +48,7 @@ ENV_NAME=$1
THIS_DIR="$(pwd)" THIS_DIR="$(pwd)"
WORKING_DIR="$(dirname "$THIS_DIR")" WORKING_DIR="$(dirname "$THIS_DIR")"
EXE_DIR="$(basename "$THIS_DIR")" EXE_DIR="$(basename "$THIS_DIR")"
ENV_DIR=${WORKING_DIR}/${ENV_NAME} ENV_DIR=${WORKING_DIR}/virtual_envs/${ENV_NAME}
TF_CONTAINER=${WORKING_DIR}/HPC_scripts/tensorflow_21.09-tf1-py3.sif TF_CONTAINER=${WORKING_DIR}/HPC_scripts/tensorflow_21.09-tf1-py3.sif
## perform sanity checks ## perform sanity checks
...@@ -98,14 +98,10 @@ if [[ "$ENV_EXIST" == 0 ]]; then ...@@ -98,14 +98,10 @@ if [[ "$ENV_EXIST" == 0 ]]; then
info_str="Virtual environment ${ENV_DIR} has been set up successfully." info_str="Virtual environment ${ENV_DIR} has been set up successfully."
elif [[ "$ENV_EXIST" == 1 ]]; then elif [[ "$ENV_EXIST" == 1 ]]; then
# loading modules of postprocessing and activating virtual env are suifficient # loading modules of postprocessing and activating virtual env are suifficient
if [[ "${bool_container}" == 0 ]]; then
source ${ENV_SETUP_DIR}/modules_postprocess.sh source ${ENV_SETUP_DIR}/modules_postprocess.sh
# activate virtual envirionment # activate virtual envirionment
source ${ENV_DIR}/bin/activate source ${ENV_DIR}/bin/activate
else
# activate virtual envirionment with path-adaption
source ${ENV_DIR}/${ENV_NAME}/bin/activate
fi
info_str="Virtual environment ${ENV_DIR} has been activated successfully." info_str="Virtual environment ${ENV_DIR} has been activated successfully."
fi fi
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
# set some basic variables # set some basic variables
BASE_DIR="$(pwd)" BASE_DIR="$(pwd)"
VENV_BASE=$1 VENV_DIR=$1
VENV_NAME="$(basename "${VENV_BASE}")" VENV_NAME="$(basename "${VENV_DIR}")"
VENV_DIR=${VENV_BASE}/${VENV_NAME} VENV_BASE="$(dirname "${VENV_DIR}")"
VENV_REQ=${BASE_DIR}/requirements.txt VENV_REQ=${BASE_DIR}/requirements.txt
# sanity checks # sanity checks
...@@ -40,15 +40,26 @@ if [ ! -f "${VENV_REQ}" ]; then ...@@ -40,15 +40,26 @@ if [ ! -f "${VENV_REQ}" ]; then
return return
fi fi
# create or change to base directory for virtual environment (i.e. where the virtualenv-module is placed)
# create basic target directory for virtual environment if ! [[ -d "${VENV_BASE}" ]]; then
mkdir "${VENV_BASE}" mkdir "${VENV_BASE}"
# Install virtualenv in this directory # Install virtualenv in this directory
echo "Installing virtualenv under ${VENV_BASE}..." echo "Installing virtualenv under ${VENV_BASE}..."
pip install --target="${VENV_BASE}/" virtualenv pip install --target="${VENV_BASE}/" virtualenv
# Change into the directory... # Change into the base-directory of virtual environments...
cd "${VENV_BASE}" || exit cd "${VENV_BASE}" || return
# .. to set-up virtual environment therein else
# Change into the base-directory of virtual environments...
cd "${VENV_BASE}" || return
if ! python -m virtualenv --version >/dev/null; then
echo "ERROR: Base directory for virtual environment exists, but virtualenv-module is unavailable."
exit
fi
echo "Virtualenv is already installed."
fi
# Set-up virtual environment in base directory for virtual environments
python -m virtualenv -p /usr/bin/python "${VENV_NAME}" python -m virtualenv -p /usr/bin/python "${VENV_NAME}"
# Activate virtual environment and install required packages # Activate virtual environment and install required packages
echo "Actiavting virtual environment ${VENV_NAME} to install required Python modules..." echo "Actiavting virtual environment ${VENV_NAME} to install required Python modules..."
...@@ -62,10 +73,10 @@ export PYTHONPATH=${WORKING_DIR}/model_modules:$PYTHONPATH ...@@ -62,10 +73,10 @@ export PYTHONPATH=${WORKING_DIR}/model_modules:$PYTHONPATH
export PYTHONPATH=${WORKING_DIR}/postprocess:$PYTHONPATH export PYTHONPATH=${WORKING_DIR}/postprocess:$PYTHONPATH
# ... also ensure that PYTHONPATH is appended when activating the virtual environment... # ... also ensure that PYTHONPATH is appended when activating the virtual environment...
echo 'export PYTHONPATH="/usr/local/lib/python3.8/dist-packages/"' >> "${ACT_VENV}" echo 'export PYTHONPATH="/usr/local/lib/python3.8/dist-packages/"' >> "${ACT_VENV}"
echo 'export PYTHONPATH=${WORKING_DIR}:$PYTHONPATH' >> ${ACT_VENV} echo 'export PYTHONPATH='${WORKING_DIR}':$PYTHONPATH' >> ${ACT_VENV}
echo 'export PYTHONPATH=${WORKING_DIR}/utils:$PYTHONPATH' >> ${ACT_VENV} echo 'export PYTHONPATH='${WORKING_DIR}'/utils:$PYTHONPATH' >> ${ACT_VENV}
echo 'export PYTHONPATH=${WORKING_DIR}/model_modules:$PYTHONPATH' >> ${ACT_VENV} echo 'export PYTHONPATH='${WORKING_DIR}'/model_modules:$PYTHONPATH' >> ${ACT_VENV}
echo 'export PYTHONPATH=${WORKING_DIR}/postprocess:$PYTHONPATH' >> ${ACT_VENV} echo 'export PYTHONPATH='${WORKING_DIR}'/postprocess:$PYTHONPATH' >> ${ACT_VENV}
# ... install requirements # ... install requirements
pip install --no-cache-dir -r "${VENV_REQ}" pip install --no-cache-dir -r "${VENV_REQ}"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment