I always use the following script (run.sh) to initialize a virtual environment, but also to execute the application in the virtual environment if the environment already exists.

#!/bin/bash
set -eou pipefail

ENV_DIR=".env"

[ ! -d ${ENV_DIR} ] && python3 -m venv ${ENV_DIR}
source ${ENV_DIR}/bin/activate

[ -f requirements.txt ] && python3 -m pip install -r requirements.txt
python3 app.py $@