R & Jupyterlab

Script

Este script cria dois ambientes virtuais, um para a linguagem R e outro para a linguagem Python, instala o kernel do R no ambiente e roda o jupyterlab utilizando ./notebooks como pasta para armazenamento dos notebooks.

#!/bin/bash
set -e

# Constants
R_PATH="c://Program Files/R/R-4.1.3/bin/Rscript.exe"

R_ENVIRONMENTS_PATH=~/renvironments
PYTHON_ENVIRONMENTS_PATH=~/environments

ENVIRONMENT_NAME="r_jupyter_test"

R_ENVIRONMENT_PATH="${R_ENVIRONMENTS_PATH}/${ENVIRONMENT_NAME}"
PYTHON_ENVIRONMENT_PATH="${PYTHON_ENVIRONMENTS_PATH}/${ENVIRONMENT_NAME}"

# Test R installation
echo "========================================================================"
echo "Testing R installation"
printf "\n"
"${R_PATH}" -e "cat('Installation OK')"
printf "\n"

# Create user lib if not exist
echo "========================================================================"
echo "Creating user lib"
printf "\n"
"${R_PATH}" -e "dir.create(path = Sys.getenv('R_LIBS_USER'), showWarnings = FALSE, recursive = TRUE)"
printf "\n"

# Install renv - r virtual environments package
echo "========================================================================"
echo "Install renv"
printf "\n"
"${R_PATH}" -e "install.packages('renv', lib = Sys.getenv('R_LIBS_USER'), repos = 'https://cran.rstudio.com/')"
printf "\n"

#  Create R virtual environment
echo "========================================================================"
echo "Create renv"
printf "\n"
"${R_PATH}" -e "renv::init(project='${R_ENVIRONMENT_PATH}')"
py -c "import os; print(os.path.isdir('${R_ENVIRONMENT_PATH}'))"
printf "\n"

#  Create Python virtual environment
echo "========================================================================"
echo "Create venv"
printf "\n"
py -3 -m venv ${PYTHON_ENVIRONMENT_PATH}
py -c "import os; print(os.path.isdir('${PYTHON_ENVIRONMENT_PATH}'))"
${PYTHON_ENVIRONMENT_PATH}/Scripts/python -m pip install --upgrade pip
${PYTHON_ENVIRONMENT_PATH}/Scripts/python -m pip install jupyterlab

# Install R kernel
echo "========================================================================"
echo "Install r kernell"
printf "\n"
source ${PYTHON_ENVIRONMENT_PATH}/Scripts/activate && \
"${R_PATH}" -e "renv::activate(project='${R_ENVIRONMENT_PATH}'); \
                renv::install(project='${R_ENVIRONMENT_PATH}', \
                packages=c('IRkernel', 'languageserver')); \
                IRkernel::installspec(prefix='${PYTHON_ENVIRONMENT_PATH}'); \
                renv::snapshot(type = 'all')"
printf "\n"

# Run Jupyter
echo "========================================================================"
echo "Run jupyterlab"
printf "\n"
source ${PYTHON_ENVIRONMENT_PATH}/Scripts/activate && \
jupyter lab --notebook-dir="./notebooks"

Updated: