Spaces:
Runtime error
Runtime error
| set -e | |
| PYTHON=${1:-"python"} | |
| USERNAME=${2-"automatic"} | |
| # Make sure we run the command as non-root user | |
| sudoUserIf() { | |
| if [ "$(id -u)" -eq 0 ] && [ "${USERNAME}" != "root" ]; then | |
| sudo -u ${USERNAME} "$@" | |
| else | |
| "$@" | |
| fi | |
| } | |
| installPythonPackage() { | |
| PACKAGE=${1:-""} | |
| VERSION=${2:-"latest"} | |
| # pip skips installation if the package is already installed | |
| echo "Installing $PACKAGE..." | |
| if [ "${VERSION}" = "latest" ]; then | |
| sudoUserIf ${PYTHON} -m pip install ${PACKAGE} --no-cache-dir | |
| else | |
| sudoUserIf ${PYTHON} -m pip install ${PACKAGE}=="${VERSION}" --no-cache-dir | |
| fi | |
| } | |
| # If in automatic mode, determine if a user already exists, if not use vscode | |
| if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then | |
| USERNAME="" | |
| POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)") | |
| for CURRENT_USER in ${POSSIBLE_USERS[@]}; do | |
| if id -u ${CURRENT_USER} > /dev/null 2>&1; then | |
| USERNAME=${CURRENT_USER} | |
| break | |
| fi | |
| done | |
| if [ "${USERNAME}" = "" ]; then | |
| USERNAME=vscode | |
| fi | |
| elif [ "${USERNAME}" = "none" ]; then | |
| USERNAME=root | |
| USER_UID=0 | |
| USER_GID=0 | |
| fi | |
| # Make sure that Python is available | |
| if ! ${PYTHON} --version > /dev/null ; then | |
| echo "You need to install Python before installing packages" | |
| exit 1 | |
| fi | |
| installPythonPackage "numpy" "latest" | |
| installPythonPackage "pandas" "latest" | |
| installPythonPackage "scipy" "latest" | |
| installPythonPackage "matplotlib" "latest" | |
| installPythonPackage "seaborn" "latest" | |
| installPythonPackage "scikit-learn" "latest" | |
| installPythonPackage "tensorflow" "latest" | |
| installPythonPackage "keras" "latest" | |
| installPythonPackage "torch" "latest" | |
| installPythonPackage "requests" "latest" | |