this fixes an issue when the install script is called outside its directory

- Also reimplements the python-path finding logic of the older install.sh script.
This commit is contained in:
Lincoln Stein 2023-02-03 21:42:00 -05:00 committed by Eugene Brodsky
parent 813f92a1ae
commit 50191774fc
2 changed files with 26 additions and 2 deletions

25
installer/install.sh.in Normal file → Executable file
View File

@ -3,5 +3,28 @@
# 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
exec python3 $(dirname $0)/main.py ${@}
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
MINIMUM_PYTHON_VERSION=3.9.0
PYTHON=""
for candidate in python3.10 python3.9 python3 python python3.11 ; do
if ppath=`which $candidate`; then
python_version=$($ppath -V | awk '{ print $2 }')
if [ $(version $python_version) -ge $(version "$MINIMUM_PYTHON_VERSION") ]; then
PYTHON=$ppath
break
fi
fi
done
if [ -z "$PYTHON" ]; then
echo "A suitable Python interpreter could not be found"
echo "Please install Python 3.9 or higher before running this script. See instructions at $INSTRUCTIONS for help."
read -p "Press any key to exit"
exit -1
fi
exec $PYTHON ./main.py ${@}

View File

@ -38,7 +38,8 @@ class Installer:
self.reqs = INSTALLER_REQS
self.preflight()
if os.getenv("VIRTUAL_ENV") is not None:
raise NotImplementedError("A virtual environment is already activated. Please 'deactivate' before installation.")
print("A virtual environment is already activated. Please 'deactivate' before installation.")
sys.exit(-1)
self.bootstrap()
def preflight(self) -> None: