mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
40 lines
1.4 KiB
Bash
Executable File
40 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# make sure we are not already in a venv
|
|
# (don't need to check status)
|
|
deactivate >/dev/null 2>&1
|
|
scriptdir=$(dirname "$0")
|
|
cd $scriptdir
|
|
|
|
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
|
|
|
|
MINIMUM_PYTHON_VERSION=3.10.0
|
|
MAXIMUM_PYTHON_VERSION=3.11.100
|
|
PYTHON=""
|
|
for candidate in python3.11 python3.10 python3 python ; do
|
|
if ppath=`which $candidate`; then
|
|
# when using `pyenv`, the executable for an inactive Python version will exist but will not be operational
|
|
# we check that this found executable can actually run
|
|
if [ $($candidate --version &>/dev/null; echo ${PIPESTATUS}) -gt 0 ]; then continue; fi
|
|
|
|
python_version=$($ppath -V | awk '{ print $2 }')
|
|
if [ $(version $python_version) -ge $(version "$MINIMUM_PYTHON_VERSION") ]; then
|
|
if [ $(version $python_version) -le $(version "$MAXIMUM_PYTHON_VERSION") ]; then
|
|
PYTHON=$ppath
|
|
break
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ -z "$PYTHON" ]; then
|
|
echo "A suitable Python interpreter could not be found"
|
|
echo "Please install Python $MINIMUM_PYTHON_VERSION or higher (maximum $MAXIMUM_PYTHON_VERSION) before running this script. See instructions at $INSTRUCTIONS for help."
|
|
echo "For the best user experience we suggest enlarging or maximizing this window now."
|
|
read -p "Press any key to exit"
|
|
exit -1
|
|
fi
|
|
|
|
exec $PYTHON ./lib/main.py ${@}
|
|
read -p "Press any key to exit"
|