scriptory/update-python-env.sh

44 lines
1.1 KiB
Bash
Raw Normal View History

2024-10-13 18:32:53 +00:00
if [ -z $1 ]; then
echo "Usage: $0 <python version> [ENV_NAME]"
2024-10-13 18:32:53 +00:00
exit 1
fi
if [ ! -f .python-version ]; then
echo "Not a python project: `pwd`"
exit 1
fi
PY_VER=$1
PROJECT=$2
if [[ $PROJECT == "" ]]; then
PROJECT=$(basename $PWD)
fi
echo "[*] Checking if required python version $PY_VER is installed"
pyenv versions | grep $PY_VER > /dev/null
res=$?
if [ $res -eq 1 ]; then
echo "Python $PY_VER is not installed. Run \"pyenv install $PY_VER\""
exit 1
fi
CUR_VENV=$(cat .python-version)
echo "[*] Removing current virtualenv ($CUR_VENV)"
pyenv virtualenv-delete -f $CUR_VENV || true
2024-10-13 18:32:53 +00:00
echo "[*] Removing virtualenv named as project ($PROJECT)"
pyenv virtualenv-delete -f $PROJECT || true
2024-10-13 18:32:53 +00:00
NEW_VENV=$PY_VER/envs/$PROJECT
echo "[*] Creating new virtualenv ($NEW_VENV)"
2024-10-13 18:46:46 +00:00
pyenv virtualenv $PY_VER $PROJECT || exit 1
2024-10-13 18:32:53 +00:00
echo $NEW_VENV > .python-version
echo "[*] Updating pip, setuptools and wheel"
2024-10-13 18:46:46 +00:00
pip install -U pip setuptools wheel || exit 1
2024-10-13 18:32:53 +00:00
if [ -f requirements.txt ]; then
echo "[*] Installing packets from requirements.txt"
pip install -Ur requirements.txt
fi