• @HarryEffingPotter
    link
    4
    edit-2
    1 year ago

    Yessssss

    I actually wrote a script to make a folder an instant pipenv environment for me. Add it to your ./.zshrc. Has saved me a ton of time, I just removed some spaghetti lines that would reinstall pip and shit because it’s when I was still early days into Py dev, now I work more with Py than I do C# and I’m a senior C# engineer, I just enjoy the masochism of py.

    Also added a check for Arch/Ubu.

    # Automated python virtual environment.
    #######################################
    VENV(){
    if ! [ -x "$(command -v pipenv)" ]; then
         echo "pipenv not installed... installing it now!"
         sudo pip install pipenv
         OS="$( ( lsb_release -ds || cat /etc/*release || uname -om ) 2>/dev/null | head -n1 )"
         if [[ "$OS" == *"buntu"* ]]; then
            sudo apt install pipenv -y
         elif  [[ "$OS" == *"rch"* ]];  then
            sudo pacman -S pipenv
         fi
         pip install pipenv --upgrade
         echo "Installation complete!"
    fi
    if [ -n "$1" ]; then
            echo -e "Args detected, specifically using version $1 of python in this project!"
            version="$1"
    else
            version=$(python -V)
            version=$(echo "$version" | sed -e 's/Python //')
            if [ -z "$version" ]; then
                    version=$(python3 -V)
                    if [ -z "$version" ]; then
                             echo "No python version installed... exiting."
                             return
                    fi
            fi
    fi
    echo -e "\n===========\nCreate a Python $version virtual environment in $PWD/.venv [y/n]?\n==========="
    read -r answer
    case $answer in
        [yY][eE][sS]|[yY])
    export PIPENV_VENV_IN_PROJECT=1
    pipenv --python "$version"
    pipenv install -r ./requirements.txt
    echo -e "\n\n\nVirtual python environment successfully created @ $PWD/.venv!\n"
    echo -e "To run commands from this dir use 'pipenv run python ./main.py'"
    echo -e "To enter a shell in this venv use 'pipenv shell'."
    echo -e "To install from a requirements text file use 'pipenv install -r requirements.txt'"
    echo -e "To update pip + all pip modules use 'pipenv update'!\n"
    echo -e "Additional information can be found @ https://pipenv-fork.readthedocs.io/en/latest/basics.html"
    ;;
        [nN][oO]|[nN])
            echo "Fine then weirdo why did you run the command then, jeez.Exiting"
    ;;
     *)
     echo "Invalid input..."
     ;;
     esac
    }