{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Installing GridAPPSD-Python and Notebook Tutorials" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quick Installation\n", "\n", "Clone the GridAPPSD-Training Repository and run the `./install.sh` script\n", "\n", "* `git clone https://github.com/GRIDAPPSD/gridappsd-training.git`\n", "* `cd gridappsd-training`\n", "* `./install.sh`\n", "\n", "Accept the user terms for Miniconda and Jupyterlab. \n", "\n", "After completion, the JupyterLab server will be running in a virtual environment with the training notebooks\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![ubuntu-clone-training](../images/1.3/ubuntu_clone_training.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![ubuntu-py-install](../images/1.3/ubuntu_py_install.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To start the jupyter notebooks at a later time, change directories into gridappsd-training and run the `./run.sh` script:\n", "\n", "* `cd gridappsd-training`\n", "* `./run.sh`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Manual Installation\n", "\n", "### Install Anaconda or Miniconda\n", "\n", "If not __pip__ is not installed, use `apt-get` to install it.\n", "\n", "* `sudo apt-get install python-pip`\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![python-pip](../images/1.3/ubuntu_python_pip.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Download the latest version of Anaconda or Miniconda and save it in the `/Downloads` folder:\n", "\n", "* Use Python 3.8 install for 64-bit systems from the [Conda.io website](https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh).\n", "* Use Python 3.7 install for 32-bit systems from the [Conda.io website](https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86.sh)\n", "\n", "Install Miniconda using bash\n", "\n", "* `cd /Downloads`\n", "* `bash Miniconda3-latest-Linux-x86_64.sh`\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![bash-miniconda](../images/1.3/ubuntu_bash_miniconda.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Follow the prompts on the installer screens. If you are unsure about any setting, accept the defaults. You can change them later. To make the changes take effect, close and then re-open your terminal window. \n", "\n", "Test your installation. In your terminal window or Anaconda Prompt, run the command `conda list`. A list of installed packages appears if it has been installed correctly" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Install GridAPPSD-Python\n", "\n", "Use __pip__ to install GridAPPSD-Python, which is need to pass API Calls to GridAPPS-D platform using the GridAPPSD-Python library methods:\n", "\n", "* `pip install gridappsd-python`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![pip-install-gapps](../images/1.3/ubuntu_pip_gapps.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Install Jupyter Lab\n", "\n", "Use __pip__ to install Jupyter Lab, which is need to open and execute the Python Training Notebooks:\n", "\n", "* `pip install jupyterlab`\n" ] }, { "attachments": { "Screenshot%20from%202020-11-01%2015-24-36.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![Screenshot%20from%202020-11-01%2015-24-36.png](attachment:Screenshot%20from%202020-11-01%2015-24-36.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download Python Notebooks\n", "\n", "The Jupyter / iPython training notebooks are the source materials for the GridAPPS-D ReadTheDocs website.\n", "\n", "The notebooks include all the code examples and sample app materials in a format that can connect to a local GridAPPS-D platform session and interact in real-time with simulations in real-time.\n", "\n", "\n", "Clone the python notebooks in the GridAPPSD-Training repository by running \n", "\n", "* `git clone https://github.com/GRIDAPPSD/gridappsd-training` \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, the notebooks will be saved in the directory `gridappsd-training`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![notebook-platform-interaction](../images/1.3/switch_app_viz_interaction.gif)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Clone the python notebooks in the GridAPPSD-Training repository by running \n", "\n", "* `git clone https://github.com/GRIDAPPSD/gridappsd-training` \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start the Jupyter notebooks running on port 8890 (to avoid port sharing conflict with the GridAPPS-D Blazegraph database container):\n", "\n", "`jupyter notebook --port 8890`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "If running on a remote server (e.g. AWS cloud or university / laboratory server farm), start the notebooks by running\n", "\n", "`jupyter notebook --port 8890 --no-browser --ip='0.0.0.0'`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Port Sharing between GridAPPS-D and Jupyter\n", "\n", "By default, both Jupyter and the GridAPPS-D Blazegraph database use port 8889. If a Jupyter notebook is already running on port 8889, the Blazegraph database container will fail to start.\n", "\n", "It is recommended to specify manually that Jupyter run on a different port:\n", "\n", "`jupyter notebook --port 8890`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![gridappsd-logo](../../images/GridAPPS-D_narrow.png)" ] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }