diff --git a/video_prediction_tools/env_setup/create_env.sh b/video_prediction_tools/env_setup/create_env.sh index 9693d145cfdac839482e031162fd3e6836a73089..4ebfd58e02b3cfd80e6a673c8cf6a659a9ad36d6 100755 --- a/video_prediction_tools/env_setup/create_env.sh +++ b/video_prediction_tools/env_setup/create_env.sh @@ -48,7 +48,7 @@ ENV_NAME=$1 THIS_DIR="$(pwd)" WORKING_DIR="$(dirname "$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 ## perform sanity checks @@ -98,14 +98,10 @@ if [[ "$ENV_EXIST" == 0 ]]; then info_str="Virtual environment ${ENV_DIR} has been set up successfully." elif [[ "$ENV_EXIST" == 1 ]]; then # loading modules of postprocessing and activating virtual env are suifficient - if [[ "${bool_container}" == 0 ]]; then - source ${ENV_SETUP_DIR}/modules_postprocess.sh - # activate virtual envirionment - source ${ENV_DIR}/bin/activate - else - # activate virtual envirionment with path-adaption - source ${ENV_DIR}/${ENV_NAME}/bin/activate - fi + source ${ENV_SETUP_DIR}/modules_postprocess.sh + # activate virtual envirionment + source ${ENV_DIR}/bin/activate + info_str="Virtual environment ${ENV_DIR} has been activated successfully." fi diff --git a/video_prediction_tools/env_setup/install_venv_container.sh b/video_prediction_tools/env_setup/install_venv_container.sh index d5d8b99c180fb1222fe4e6f9eaee365f64d33d0e..33f3929b5a51224960ece3efe68d6717ce06b660 100755 --- a/video_prediction_tools/env_setup/install_venv_container.sh +++ b/video_prediction_tools/env_setup/install_venv_container.sh @@ -10,9 +10,9 @@ # set some basic variables BASE_DIR="$(pwd)" -VENV_BASE=$1 -VENV_NAME="$(basename "${VENV_BASE}")" -VENV_DIR=${VENV_BASE}/${VENV_NAME} +VENV_DIR=$1 +VENV_NAME="$(basename "${VENV_DIR}")" +VENV_BASE="$(dirname "${VENV_DIR}")" VENV_REQ=${BASE_DIR}/requirements.txt # sanity checks @@ -40,15 +40,26 @@ if [ ! -f "${VENV_REQ}" ]; then return fi +# create or change to base directory for virtual environment (i.e. where the virtualenv-module is placed) +if ! [[ -d "${VENV_BASE}" ]]; then + mkdir "${VENV_BASE}" + # Install virtualenv in this directory + echo "Installing virtualenv under ${VENV_BASE}..." + pip install --target="${VENV_BASE}/" virtualenv + # Change into the base-directory of virtual environments... + cd "${VENV_BASE}" || return +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 + -# create basic target directory for virtual environment -mkdir "${VENV_BASE}" -# Install virtualenv in this directory -echo "Installing virtualenv under ${VENV_BASE}..." -pip install --target="${VENV_BASE}/" virtualenv -# Change into the directory... -cd "${VENV_BASE}" || exit -# .. to set-up virtual environment therein +# Set-up virtual environment in base directory for virtual environments python -m virtualenv -p /usr/bin/python "${VENV_NAME}" # Activate virtual environment and install required packages echo "Actiavting virtual environment ${VENV_NAME} to install required Python modules..." @@ -62,10 +73,10 @@ export PYTHONPATH=${WORKING_DIR}/model_modules:$PYTHONPATH export PYTHONPATH=${WORKING_DIR}/postprocess:$PYTHONPATH # ... 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=${WORKING_DIR}:$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}/postprocess:$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}'/model_modules:$PYTHONPATH' >> ${ACT_VENV} +echo 'export PYTHONPATH='${WORKING_DIR}'/postprocess:$PYTHONPATH' >> ${ACT_VENV} # ... install requirements pip install --no-cache-dir -r "${VENV_REQ}"