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 $@