First of all - Windows WSL is not a supported platform to deploy Galaxy so making it run is going to be difficult and possible only if you have enough insights into how things work under the hood.
It seems your virtualenv activation is silently failing. On supported systems you would create the virtual environment with something like python3 -m venv .venv and then install the dependencies from the requirements.txt into it but I do not know what is the corresponding process with WSL.
a little more info, if you feel like digging deeper:
run.sh imports scrips/common_startup_functions.sh which imports scrips/common_startup.sh, which is where this error that’s thrown lives:
if [ $SET_VENV -eq 1 ] && [ -z "$VIRTUAL_ENV" ]; then
echo "ERROR: A virtualenv cannot be found. Please create a virtualenv in $GALAXY_VIRTUAL_ENV, or activate one."
If you haven’t used the "--skip-venv" flag then $SET_VENV should be 1, which implies your $VIRTUAL_ENV isn’t set. activating the virtual environment (e.g., . .venv/bin/activate) on a 'nix system sets that variable. here i am checking for that variable before and after activation: