One place for hosting & domains

      Einrichten von Jupyter Notebook mit Python 3 unter Ubuntu 20.04 und Connect über SSH Tunneling


      Einführung

      Jupyter Notebook ist eine Open-Source Webanwendung, um internaktiven Code, Visualisierungen und mehr zu erstellen und zu teilen. Dieses Tool kann mit verschiedenen Programmiersprachen genutzt werden, einschließlich Python, Julia, R, Haskell und Ruby. Er wird oft für das Arbeiten mit Daten, statistisches Modeling und Machine Learning genutzt.

      Jupyter Notebooks (oder kurz: „Notebooks“) werden durch die Jupyter App produziert, die sowohl Computercode als auch erweiterte Textelemente (Absätze, Gleichungen, Zahlen, Links, etc.) enthalten, die die Darstellung und Freigabe reproduzierbarer Ergebnisse unterstützen. Sie sind somit ein ausgezeichnetes Tool für datenbasierte oder programmbasierte Präsentationen oder als Lernwerkzeug.

      In diesem Tutorial befassen wir uns mit der Einrichtung von Jupyter Notebook auf einem Ubuntu 20.04-Server und zeigen, wie das Notebook via Tunnelling von einer lokalen Maschine verbunden und genutzt wird. Am Ende dieses Leitfadens können Sie Python 3 Code mit Jupyter Notebook auf einem Remote-Server ausführen.

      Voraussetzungen

      Um diesen Leitfaden erfolgreich zu absolvieren, sollten Sie eine neue Ubuntu 20.04-Serverinstanz mit einer einfachen Firewall und einem Nicht-root-Benutzer mit sudo-Berechtigungen konfiguriert haben. In unserem Leitfaden zur Ersteinrichtung des Servers erfahren Sie, wie Sie die Einrichtung vornehmen.

      Schritt 1 — Einrichten von Python

      Wir beginnen damit, die Abhängigkeiten zu installieren, die wir für unsere Python-Programmierung aus den Ubuntu Repositorys benötigen. Ubuntu 20.04 hat Python 3 vorinstalliert. Wir nutzen den Python Paketmanager pip, um später zusätzliche Komponenten zu installieren.

      Wir müssen zuerst den lokalen Paketindex apt aktualisieren und die Pakete herunterladen und installieren:

      Installieren Sie als Nächstes pip und die Python Header-Dateien, die von einigen der Jupyter-Abhängigkeiten genutzt werden:

      • sudo apt install python3-pip python3-dev

      Wir können nun mit der Einrichtung einer virtuellen Python-Umgebung fortfahren, in die wir Jupyter installieren.

      Schritt 2 — Erstellen einer virtuellen Python-Umgebung für Jupyter

      Nachdem wir nun Python 3 und seine Header-Dateien haben und pip bereit ist, können wir eine virtuelle Python-Umgebung erstellen, um unsere Projekte zu verwalten. Wir wollen Jupyter in diese virtuelle Umgebung installieren.

      Dazu benötigen wir zunächst Zugriff auf den Befehl virtualenv, den wir mit pip installieren können.

      Upgraden Sie pip und installieren Sie den Paket, indem Sie Folgendes eingeben:

      • sudo -H pip3 install --upgrade pip
      • sudo -H pip3 install virtualenv

      Das Flag -H stellt sicher, dass die Sicherheitsrichtlinie die home-Umgebungsvariable im Home-Verzeichnis des Zielbenutzers festlegt.

      Wenn virtualenv installiert ist, können wir mit der Erstellung unserer Umgebung beginnen. Erstellen und wechseln Sie in ein Verzeichnis, in dem wir unsere Projektdateien speichern können. Wir nennen es my_project_dir. Sie sollten jedoch einen Namen verwenden, der für Sie und das, woran Sie arbeiten, aussagekräftig ist.

      • mkdir ~/my_project_dir
      • cd ~/my_project_dir

      Innerhalb des Projektverzeichnisses erstellen wir eine virtuelle Python-Umgebung. Für den Zweck dieses Tutorials werden wir sie my_project_env nennen, aber Sie sollten sie so benennen, wie es für Ihr Projekt relevant ist.

      • virtualenv my_project_env

      Auf diese Weise wird ein Verzeichnis mit dem Namen my_project_env in Ihrem Verzeichnis my_project_dir erstellt. Darin wird eine lokale Version von Python und eine lokale Version von pip installiert. Wir können es nutzen, um eine isolierte Python-Umgebung für Jupyter zu installieren und zu konfigurieren.

      Bevor wir Jupyter installieren, müssen wir die virtuelle Umgebung aktivieren. Geben Sie hierzu Folgendes ein:

      • source my_project_env/bin/activate

      Ihre Eingabeaufforderung ändert sich und zeigt an, dass Sie jetzt innerhalb einer virtuellen Python-Umgebung arbeiten. Ihre Eingabeaufforderung sieht nun in etwa wie folgt aus: (my_project_env)user@host:~/my_project_dir$.

      Jetzt sind Sie bereit, Jupyter in diese virtuelle Umgebung zu installieren.

      Schritt 3 — Installieren von Jupyter

      Wenn Ihre virtuelle Umgebung aktiv ist, installieren Sie Jupyter mit der lokalen Instanz von pip.

      Anmerkung: Wenn die virtuelle Umgebung aktiviert ist (wenn Ihre Eingabe über (my_project_env) dieser voransteht), verwenden Sie pip anstelle von pip3, selbst wenn Sie Python 3 verwenden. Die Kopie der virtuellen Umgebung des Tools ist immer pip – unabhängig von der Python-Version.

      Jetzt haben Sie alle zur Ausführung von Jupyter benötigte Software erfolgreich installiert. Wir können nun den Notebook-Server starten.

      Schritt 4 — Ausführen von Jupyter Notebook

      Sie haben nun alles, was Sie brauchen, um Jupyter Notebook auszuführen! Um es auszuführen, führen Sie den folgenden Befehl aus:

      Ein Protokoll der Aktivitäten von Jupyter Notebooks wird auf das Terminal gedruckt. Wenn Sie Jupyter Notebook ausführen, läuft es auf einer bestimmten Portnummer. Das erste Notebook, das Sie ausführen, verwendet normalerweise Port 8888. Um die Portnummer, auf der Jupyter Notebook ausgeführt wird, zu überprüfen, prüfen Sie die Ausgabe des Befehls, der zum Starten verwendet wird:

      Output

      [I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret [I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir [I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at: [I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 [I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser. [C 21:23:21.361 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

      Wenn Sie Jupyter Notebook auf einem lokalen Computer (nicht auf einem Server) ausführen, können Sie zur angezeigten URL navigieren, um eine Verbindung mit Jupyter Notebook herzustellen. Wenn Sie Jupyter Notebook auf einem Server ausführen, müssen Sie über SSH-Tunneling mit dem Server eine Verbindung herstellen, wie im nächsten Abschnitt beschrieben.

      Jetzt können Sie die SSH-Verbindung offen lassen und Jupyter Notebook weiter ausführen oder die App beenden und erneut ausführen, wenn Sie SSH-Tunneling eingerichtet haben. Wir wollen den Jupyter Notebook-Prozess stoppen. Wir führen ihn wieder aus, sobald wir SSH-Tunnel eingerichtet haben. Um den Jupyter Notebook-Prozess zu stoppen, drücken Sie STRG+C, geben Sie Y und dann zur Bestätigung ENTER ein. Die folgende Ausgabe wird angezeigt:

      Output

      [C 21:28:28.512 NotebookApp] Shutdown confirmed [I 21:28:28.512 NotebookApp] Shutting down 0 kernels

      Wir richten nun einen SSH-Tunnel ein, damit wir auf das Notebook zugreifen können.

      Schritt 5 — Verbinden mit dem Server mit SSH-Tunneling

      In diesem Abschnitt zeigen wir, wie wir mit der Weboberfläche von Jupyter Notebook eine Verbindung über SSH-Tunneling herstellen. Da Jupyter Notebook auf einem bestimmten Port auf dem Server ausgeführt wird (wie :8888, :8889 usw.), ermöglicht SSH-Tunneling eine sichere Verbindung mit dem Server-Port.

      Die nächsten beiden Unterabschnitte beschreiben, wie Sie einen SSH-Tunnel aus 1) einem Mac oder Linux oder 2) Windows erstellen. Siehe der Unterabschnitt für Ihren lokalen Computer.

      SSH-Tunneling mit einem Mac oder Linux

      Wenn Sie einen lokalen Mac- oder Linux-Computer verwenden, ähneln die Schritte zum Erstellen eines SSH-Tunnels der Anmeldung mit einem Remote-Server über SSH, mit Ausnahme der zusätzlichen Parameter im Befehl ssh. Dieser Unterabschnitt beschreibt die zusätzlichen Parameter, die im Befehl ssh für erfolgreiches Tunneling benötigt werden.

      SSH-Tunneling kann durch Ausführen des folgenden SSH-Befehls in einem neuen lokalen Terminalfenster erfolgen:

      • ssh -L 8888:localhost:8888 your_server_username@your_server_ip

      Der Befehl ssh öffnet eine SSH-Verbindung, aber -L gibt an, dass der bestimmte Port auf dem lokalen (Client) Host remote-seitig (Server) an den bestimmten Host weitergeleitet werden soll. Das bedeutet, dass alles, was auf der zweiten Portnummer (z. B. 8888) auf dem Server auf der ersten Portnummer (z. B. 8888) auf dem lokalen Computer angezeigt wird.

      Optional ändern Sie Port 8888 in einen anderen Ihrer Wahl, um zu vermeiden, einen Port zu nutzen, der bereits in einem anderen Prozess verwendet wird.

      server_username ist Ihr Benutzername (z. B. sammy) auf dem Server, den Sie erstellt haben, und your_server_ip lautet die IP-Adresse Ihres Servers.

      Für den Benutzernamen sammy und die Adresse des Servers <^>203.0.113.0^> wäre der Befehl:

      • ssh -L 8888:localhost:8888 sammy@203.0.113.0

      Wenn nach Ausführung des Befehls ssh-L kein Fehler angezeigt wird, können Sie in Ihre Programmierumgebung wechseln und Jupyter Notebook ausführen:

      Sie erhalten eine Ausgabe mit einer URL. Öffnen Sie von einem Webbrowser auf Ihrem lokalen Rechner die Weboberfläche von Jupyter Notebook mit der URL, die mit http://localhost:8888 beginnt. Stellen Sie sicher, dass die Token-Nummer enthalten ist oder geben Sie die Token-Nummer, wenn Sie dazu aufgefordert werden, unter http://localhost:8888 ein.

      SSH-Tunneling mit Windows und Putty

      Wenn Sie Windows verwenden, können Sie einen SSH-Tunnel mit Putty erstellen.

      Geben Sie zunächst die Adresse des Servers oder die IP-Adresse als Hostnamen ein, wie hier dargestellt:

      Hostname für SSH-Tunnel festlegen

      Klicken Sie dann unten im linken Fenster auf SSH, um das Menü auszuklappen und klicken Sie anschließend auf Tunnels. Geben Sie die lokale Portnummer ein, die Sie zum Zugriff auf Jupyter auf Ihrem lokalen Computer verwenden möchten. Wählen Sie 8000 oder höher aus, um Ports zu vermeiden, die von anderen Diensten verwendet werden, und setzen Sie das Ziel als localhost:8888 fest (wobei :8888 der Port-Nummer entspricht, auf der das Jupyter Notebook ausgeführt wird).

      Klicken Sie nun auf die Schaltfläche Add (hinzufügen). Die Ports sollten in der Liste Forwarded ports angezeigt werden:

      Forwarded Ports Liste

      Klicken Sie abschließend auf die Schaltfläche Open, um eine Verbindung zum Server über SSH herzustellen und die gewünschten Ports zu tunneln. Navigieren Sie im Browser zu http://localhost:8000 (oder einen anderen beliebigen Port), um sich mit dem Jupyter Notebook zu verbinden, das auf dem Server ausgeführt wird. Stellen Sie sicher, dass die Token-Nummer enthalten ist oder geben Sie die Token-Nummer unter http://localhost:8888 ein, wenn Sie dazu aufgefordert werden.

      Schritt 6 — Verwenden von Jupyter Notebook

      Dieser Abschnitt beschreibt die Grundlagen der Verwendung von Jupyter Notebook. Wenn Sie Jupyter Notebook nicht bereits ausführen, starten Sie es mit dem Befehl jupyter notebook.

      Sie sollten nun damit über einen Webbrowser verbunden sein. Jupyter Notebook ist ein sehr leistungsfähiges Tool mit vielen Funktionen. Dieser Abschnitt beschreibt einige grundlegende Funktionen für den Einstieg ins Notebook. Jupyter Notebook zeigt alle Dateien und Ordner im Verzeichnis an, aus dem es ausgeführt wird. Wenn Sie also an einem Projekt arbeiten, müssen Sie sie aus dem Projektverzeichnis starten.

      Um eine neue Notebook-Datei zu erstellen, wählen Sie New > Python 3 aus dem Pull-down-Menü oben rechts:

      Erstellen eines neuen Python 3 Notebooks

      Das öffnet ein Notebook. Wir können nun Python-Code in der Zelle ausführen oder die Zelle in Markdown ändern. Ändern Sie beispielsweise die erste Zelle, um Markdown zu akzeptieren, indem Sie über die obere Navigationsleiste auf Cell > Cell Type > Markdown klicken. Wir können nun Notizen mit Markdown schreiben und sogar Gleichungen einschließen, die in LaTeX geschrieben wurden, indem wir Sie zwischen die Symbole $$ setzen. Geben Sie beispielsweise Folgendes in die Zelle ein, nachdem Sie sie in Markdown geändert haben:

      # First Equation
      
      Let us now implement the following equation:
      $$ y = x^2$$
      
      where $x = 2$
      

      Um Markdown in Rich-Text zu verwandeln, betätigen Sie die Tasten CTRL und ENTER. Sie erhalten eine Ausgabe, die etwa folgendermaßen aussieht:

      Markdown-Ergebnisse

      Sie können die Markdown-Zellen nutzen, um Notizen zu machen und Ihren Code zu dokumentieren. Wir wollen diese Gleichung implementieren und das Ergebnis drucken. Klicken Sie auf die Zelle oben und betätigen Sie dann gleichzeitig die Tasten ALT und ENTER, um eine Zelle darunter hinzuzufügen.

      x = 2
      y = x**2
      print(y)
      

      Um den Code auszuführen, betätigen Sie CTRL+ENTER. Sie erhalten die folgenden Ergebnisse:

      Ergebnisse der ersten Gleichung

      Sie haben nun die Möglichkeit, Module zu importieren und das Notebook so zu verwenden, wie in jeder anderen Python-Entwicklungsumgebung!

      Zusammenfassung

      Herzlichen Glückwunsch! Sie sollten nun reproduzierbaren Python-Code und Notizen in Markdown mit Jupyter Notebook schreiben können. Um Jupyter Notebook aus der Oberfläche heraus schnell kennenzulernen, wählen Sie Help > User Interface Tour aus dem Navigationsmenü oben.

      Von hier aus können Sie ein Datenanalyse- und Visualisierungsprojekt beginnen, indem Sie Data Analysis und Visualisierung mit Pandas und Jupyter Notebook in Python 3 lesen.



      Source link

      Cómo configurar Jupyter Notebook con Python 3 en Ubuntu 20.04 y conectar a través de los túneles SSH


      Introducción

      Jupyter Notebook es una aplicación web de código abierto que le permite crear y compartir código interactivo, visualizaciones y mucho más. Esta herramienta puede utilizarse con varios lenguajes de programación, como Python, Julia, R, Haskell y Ruby. A menudo se utiliza para trabajar con datos, modelos estadísticos, y aprendizaje automático.

      Jupyter Notebooks (o simplemente “Notebooks”) es un conjunto de documentos producidos por la aplicación Jupyter Notebook, la cual contiene tanto elementos de código informático como de texto enriquecido (párrafos, ecuaciones, cifras y enlaces, entre otros) que ayudan a presentar y compartir la investigación que puede reproducirse. Por tanto, puede ser una herramienta excelente para las presentaciones basadas en datos o basadas en programación, o como herramienta de enseñanza.

      Este tutorial mostrará cómo configurar Jupyter Notebook para que se ejecute desde un servidor Ubuntu 20.04, y demostrará cómo conectar y usar Notebook desde un equipo local a través de la tunelación. Al final de esta guía, podrá ejecutar código de Python 3 usando un Jupyter Notebook en ejecución en un servidor remoto.

      Requisitos previos

      Para completar esta guía, debe disponer de una instancia de servidor de Ubuntu 20.04 nueva con un firewall básico y un usuario no root con privilegios sudo configurados. Puede aprender a configurar esto en nuestro tutorial de configuración inicial para servidores.

      Paso 1: Configurar Python

      Para iniciar el proceso, instalaremos las dependencias que necesitamos para nuestro entorno de programación de Python desde los repositorios de Ubuntu. Ubuntu 20.04 viene preinstalado con Python 3. Usaremos el pip del administrador de paquetes de Python para instalar componentes adicionales un poco más tarde.

      Necesitaremos primero actualizar el índice de paquetes local apt y luego descargaremos e instalaremos los paquetes:

      A continuación, instale pip y los archivos de encabezado de Python, utilizados por algunas dependencias de Jupyter:

      • sudo apt install python3-pip python3-dev

      Ahora podemos proceder a configurar un entorno virtual de Python en el que instalaremos Jupyter.

      Paso 2: Crear un entorno virtual de Python para Jupyter

      Ahora Python 3, sus archivos de encabezado y pip están listos para comenzar, podemos crear un entorno virtual de Python para administrar nuestros proyectos. Instalaremos Jupyter en este entorno virtual.

      Para ello, primero necesitaremos acceso al comando virtualenv, que podemos instalar con pip.

      Actualice pip e instale el paquete escribiendo lo siguiente:

      • sudo -H pip3 install --upgrade pip
      • sudo -H pip3 install virtualenv

      El indicador -H garantiza que la política de seguridad defina la variable de entorno home como el directorio de inicio del usuario de destino.

      Con virtualenv ya instalado, podemos comenzar a crear nuestro entorno. Cree un directorio en el que podamos guardar los archivos de nuestro proyecto y posiciónese en él: Daremos a este directorio el nombre my_project_dir, pero deberá usar un nombre que sea significativo para usted y para el trabajo que está desarrolle.

      • mkdir ~/my_project_dir
      • cd ~/my_project_dir

      En el directorio del proyecto, crearemos un entorno virtual de Python. A los efectos de este tutorial, le daremos el nombre my_project_env, pero debería asignarle uno que se relacione con su proyecto.

      • virtualenv my_project_env

      Con esto, se creará un directorio llamado my_project_env dentro de su directorio my_project_dir. Dentro de este, se instalarán una versión local de Python y una versión local de pip. Podemos usar esto para instalar y configurar un entorno aislado de Python para Jupyter.

      Antes de instalar Jupyter, debemos activar el entorno virtual. Puede hacerlo escribiendo lo siguiente:

      • source my_project_env/bin/activate

      Su línea de comandos cambiará para indicar que ahora realizará operaciones en un entorno virtual de Python. Su línea de comandos ahora leerá algo como esto: (my_project_env)user@host:~/my_project_dir$.

      En este momento, está listo para instalar Jupyter en este entorno virtual.

      Paso 3: Instalar Jupyter

      Una vez activado su entorno virtual, instale Jupyter con la instancia local de pip.

      Nota: Cuando se active el entorno virtual (cuando (my_project_env) se encuentre al inicio de su línea de comandos), use pip en lugar de pip3, incluso si emplea Python 3. La copia del entorno virtual de la herramienta siempre se llama pip, independientemente de la versión de Python.

      En este punto, habrá instalado con éxito todo el software necesario para ejecutar Jupyter. Ahora podremos iniciar el servidor de Notebook.

      Paso 4: Ejecutar Jupyter Notebook

      Ya dispone de todo lo que necesita para ejecutar Jupyter Notebook. Para ejecutarlo, introduzca el siguiente comando:

      Se mostrará un registro de las actividades de Jupyter Notebook en el terminal. Cuando se ejecuta Jupyter Notebook, este funciona en un número de puerto específico. Normalmente, el primer notebook que ejecute usará el puerto 8888. Para verificar el número de puerto específico en el que se ejecuta Jupyter Notebook, consulte el resultado del comando utilizado para iniciarlo:

      Output

      [I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret [I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir [I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at: [I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 [I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser. [C 21:23:21.361 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

      Si ejecuta Jupyter Notebook en una computadora local (no en un servidor), puede dirigirse a la URL que se muestra para conectarse a Jupyter Notebook. Si ejecuta Jupyter Notebook en un servidor, deberá establecer conexión con este usando túneles SSH como se indica en la siguiente sección.

      En este punto, podrá mantener la conexión SSH abierta y Jupyter Notebook en ejecución, o bien cerrar la aplicación y volver a ejecutarla una vez que configure los túneles SSH. Optaremos por detener el proceso de Jupyter Notebook. Lo ejecutaremos de nuevo una vez que configuremos los túneles SSH. Para detener el proceso de Jupyter Notebook, presione CTRL+C, escriba Y y luego presione ENTER para confirmar. Se mostrará el siguiente resultado:

      Output

      [C 21:28:28.512 NotebookApp] Shutdown confirmed [I 21:28:28.512 NotebookApp] Shutting down 0 kernels

      A continuación, configuraremos un túnel SSH para poder acceder al Notebook.

      Paso 5: Establecer conexión con el servidor usando túneles SSH

      En esta sección, mostraremos cómo establecer una conexión con la interfaz web de Jupyter Notebook usando túneles SSH. Debido a que Jupyter Notebook se ejecutará en un puerto específico en el servidor (como el :8888 y el :8889, entre otros), los túneles SSH le permiten establecer conexión con el puerto del servidor de forma segura.

      En los dos apartados siguientes, se describe la forma de crear un túnel SSH desde 1) un Mac o Linux y 2) Windows. Consulte el apartado que corresponda a su computadora local.

      Túeneles SSH con una Mac o Linux

      Si está usando un equipo local Mac o Linux, los pasos para crear el túnel SSH son similares a usar SSH para iniciar sesión en su servidor remoto, excepto que hay parámetros adicionales en el comando ssh. En este apartado, se describirán los parámetros adicionales necesarios en el comando ssh para implementar un túnel con éxito.

      Esta implementación es posible ejecutando el siguiente comando SSH en una nueva ventana del terminal local:

      • ssh -L 8888:localhost:8888 your_server_username@your_server_ip

      El comando ssh abre una conexión SSH, pero -L especifica que se debe reenviar el puerto determinado en el host local (cliente) al host y puerto determinados en el lado remoto (servidor). Esto significa que todo lo que está en ejecución en el segundo número de puerto (por ejemplo 8888) en el servidor aparecerá en el primer número de puerto (por ejemplo 8888) en su computadora local.

      Cambie de forma opcional el puerto 8888 por uno que elija para evitar usar un puerto ya utilizado por otro proceso.

      server_username es su nombre de usuario (por ejemplo sammy) en el servidor que creó y your_server_ip es la dirección IP de su servidor.

      Por ejemplo, para el nombre de usuario sammy y la dirección del servidor 203.0.113.0, el comando sería el siguiente:

      • ssh -L 8888:localhost:8888 sammy@203.0.113.0

      Si no se produce ningún error después de ejecutar el comando ssh -L, podrá desplazarse a su entorno de programación y ejecutar Jupyter Notebook:

      Verá un resultado con una URL. Desde un navegador web en su máquina local, abra la interfaz web de Jupyter Notebook con la URL que comienza con http://localhost:8888. Asegúrese de que el número de token esté incluido o ingrese la cadena de número de token cuando se solicite en http://localhost:8888.

      Túneles SSH con Windows y Putty

      Si usa Windows, puede crear un túnel SSH usando Putty.

      Primero, ingrese la dirección URL o IP del servidor como el nombre de host, como se muestra:

      Establecer el nombre de host para el túnel SSH

      A continuación, haga clic en SSH en la parte inferior del panel izquierdo, para expandir el menú, y luego en Tunnels. Introduzca el número del puerto local que quiera usar para acceder a Jupyter en su máquina local. Seleccione 8000, o un número mayor, para evitar los puertos utilizados por otros servicios y fije el destino en localhost:8888, donde :8888 sea el número del puerto en el que se ejecute Jupyter Notebook.

      Luego, haga clic en el botón Add. Deberían aparecer los puertos en la lista de Forwarded ports:

      Lista de Forwarded ports

      Por último, haga clic en el botón Open para establecer conexión con el servidor a través de SSH y crear un túnel entre los puertos deseados. Diríjase a http://localhost:8000 (o cualquier puerto que haya elegido) en un navegador web para conectarse al Jupyter Notebook que funciona en el servidor. Asegúrese de que el número de token esté incluido, o ingrese la cadena de número de token cuando se solicite en http://localhost:8000.

      Paso 6: Usar Jupyter Notebook

      Esta sección repasa el uso básico de Jupyter Notebook. Si Jupyter Notebook aún no está en ejecución, inícielo con el comando jupyter notebook.

      Con esto, debería establecer conexión con este usando un navegador web. Jupyter Notebook es una herramienta muy poderosa que dispone de muchas características. En esta sección se mostrarán algunas de las características básicas para que comience a usar Notebook. Jupyter Notebook mostrará todos los archivos y las carpetas en el directorio desde el que se ejecuta. Por ello, cuando trabaje en un proyecto asegúrese de iniciarlo desde el directorio del proyecto.

      Para crear un nuevo archivo de Notebook, seleccione New > Python 3 en el menú desplegable que se encuentra en la parte superior derecha:

      Crear un nuevo notebook de Python 3

      Con esto se abrirá un Notebook. Ahora podemos ejecutar el código de Python en la celda o cambiar la celda a lenguaje de marcado. Por ejemplo, cambie la primera celda para aceptar el lenguaje de marcado haciendo clic en Cell > Cell Type > Markdown en la barra de navegación de la parte superior. Con esto, podremos escribir notas usando el lenguaje de marcado e incluso incluir ecuaciones escritas en LaTeX disponiéndolas entre los símbolos de $$. Por ejemplo, escriba lo siguiente en la celda después del cambio a lenguaje de marcado:

      # First Equation
      
      Let us now implement the following equation:
      $$ y = x^2$$
      
      where $x = 2$
      

      Para convertir el marcado en texto con formato, pulse las teclas CTRL y ENTER. Debería obtener un resultado similar al siguiente:

      Resultados de lenguaje de marcado

      Puede utilizar las celdas de lenguaje de marcado para crear notas y documentar su código. Implementaremos esa ecuación e imprimiremos el resultado. Haga clic en la celda superior, luego pulse las teclas ALT y ENTER juntas para añadir una celda debajo. Introduzca el siguiente código en la nueva celda.

      x = 2
      y = x**2
      print(y)
      

      Para ejecutar el código, presione CTRL+ENTER. Obtendrá los siguientes resultados:

      Resultado de la primera ecuación

      Ahora podrá importar módulos y usar el Notebook como lo haría con cualquier otro entorno de desarrollo de Python.

      Conclusión

      ¡Felicitaciones! Ahora debería poder escribir código y notas de Python que puedan reproducirse en lenguaje de marcado usando Jupyter Notebook. Si desea acceder a una visita rápida de Jupyter Notebook desde la interfaz, seleccione Help > User Interface Tour en el menú de navegación superior para obtener más información.

      A partir de aquí, puede iniciar un proyecto de análisis y visualización de datos leyendo Análisis y visualización de datos con pandas y Jupyter Notebook en Python 3.



      Source link

      Comment configurer Jupyter Notebook avec Python 3 sur Ubuntu 20.04 et se connecter via un tunnel SSH


      Introduction

      Jupyter Notebook est une application web open source qui vous permet de créer et de partager un code interactif, des visualisations, et plus encore. Cet outil peut être utilisé avec plusieurs langages de programmation, y compris Python, Julia, R, Haskell et Ruby. Il est souvent utilisé pour travailler avec des données, une modélisation statistique et l’apprentissage automatique.

      Les Jupyter Notebooks (ou simplement « Notebooks ») sont des documents produits par l’application Jupyter Notebook qui contiennent à la fois du code informatique et des éléments de texte riches (paragraphe, équations, figures, liens, etc.) permettant de présenter et de partager des recherches reproductibles. Ils peuvent donc être un excellent outil à utiliser pour les présentations basées sur les données ou la programmation, ou comme un outil d’enseignement.

      Ce tutoriel vous guidera dans la configuration de Jupyter Notebook pour qu’il s’exécute à partir d’un serveur Ubuntu 20.04, et vous montrera comment vous connecter et utiliser le notebook à partir d’une machine locale via un tunnel. À la fin de ce guide, vous serez en mesure d’exécuter du code Python 3 en utilisant Jupyter Notebook sur un serveur distant.

      Conditions préalables

      Afin de terminer ce guide, vous devez disposer d’une nouvelle instance de serveur Ubuntu 20.04 avec un pare-feu de base et un utilisateur non root avec des privilèges sudo configurés. Vous pouvez apprendre à paramétrer cette configuration en suivant notre tutoriel de configuration initiale du serveur.

      Étape 1 — Configuration de Python

      Pour commencer, nous allons installer les dépendances dont nous avons besoin pour notre environnement de programmation Python à partir des référentiels Ubuntu. Ubuntu 20.04 est préinstallé avec Python 3. Nous utiliserons le gestionnaire de paquets Python pip pour installer un peu plus tard des composants supplémentaires.

      Nous devons d’abord mettre à jour l’index local du paquet apt et ensuite télécharger et installer les paquets :

      Ensuite, installez pip et les fichiers d’en-tête Python, qui sont utilisés par certaines des dépendances de Jupyter :

      • sudo apt install python3-pip python3-dev

      Nous pouvons maintenant passer à la mise en place d’un environnement virtuel Python dans lequel nous allons installer Jupyter.

      Étape 2 — Création d’un environnement virtuel Python pour Jupyter

      Maintenant que nous avons Python 3, ses fichiers d’en-tête et pip prêts à l’emploi, nous pouvons créer un environnement virtuel Python pour gérer nos projets. Nous allons installer Jupyter dans cet environnement virtuel.

      Pour ce faire, nous devons d’abord accéder à la commande virtualenv, que nous pouvons installer avec pip.

      Mettez pip à niveau et installez le paquet en saisissant :

      • sudo -H pip3 install --upgrade pip
      • sudo -H pip3 install virtualenv

      L’indicateur -H garantit que la politique de sécurité fixe la variable d’environnement home dans le répertoire d’accueil de l’utilisateur cible.

      Une fois que virtualenv installé, nous pouvons commencer à créer notre environnement. Créez et accédez à un répertoire où nous pouvons conserver nos fichiers de projet. Nous appellerons cela my_project_dir, mais vous devez utiliser un nom qui soit significatif pour vous et pour ce sur quoi vous travaillez.

      • mkdir ~/my_project_dir
      • cd ~/my_project_dir

      Dans le répertoire du projet, nous allons créer un environnement virtuel Python. Pour les besoins de ce tutoriel, nous l’appellerons my_project_env, mais vous devez lui donner un nom qui soit pertinent pour votre projet.

      • virtualenv my_project_env

      Cela créera un répertoire appelé my_project_env dans votre répertoire my_project_dir. Dans ce répertoire, il installera une version locale de Python et une version locale de pip. Nous pouvons utiliser cela pour installer et configurer un environnement Python isolé pour Jupyter.

      Avant d’installer Jupyter, nous devons activer l’environnement virtuel. Vous pouvez le faire en saisissant :

      • source my_project_env/bin/activate

      Votre invite devrait changer pour indiquer que vous travaillez maintenant dans un environnement virtuel Python. Votre invite de commande indiquera alors quelque chose comme ceci : (my_project_env)user@host:~/my_project_dir$.

      À ce stade, vous êtes prêt à installer Jupyter dans cet environnement virtuel.

      Étape 3 — Installation de Jupyter

      Avec votre environnement virtuel actif, installez Jupyter avec l’instance locale de pip.

      Remarque : Lorsque l’environnement virtuel est activé (lorsque votre invite a (my_projet_env) qui la précède), utilisez pip au lieu de pip3, même si vous utilisez Python 3. La copie de l’environnement virtuel de l’outil est toujours appelée pip, quelle que soit la version de Python.

      À ce stade, vous avez installé avec succès tous les logiciels nécessaires pour exécuter Jupyter. Nous pouvons maintenant démarrer le serveur Notebook.

      Étape 4 — Exécution de Jupyter Notebook

      Vous disposez maintenant de tout ce dont vous avez besoin pour exécuter Jupyter Notebook ! Pour qu’il s’exécute, exécutez la commande suivante :

      Un journal des activités du Jupyter Notebook sera imprimé sur le terminal. Lorsque vous exécutez Jupyter Notebook, il tourne sur un numéro de port spécifique. Le premier Notebook que vous exécutez utilisera généralement le port 8888. Pour vérifier le numéro de port spécifique sur lequel tourne Jupyter Notebook, reportez-vous à la sortie de la commande utilisée pour le lancer :

      Output

      [I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret [I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir [I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at: [I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 [I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser. [C 21:23:21.361 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

      Si vous exécutez Jupyter Notebook sur un ordinateur local (et non sur un serveur), vous pouvez naviguer vers l’URL affichée pour vous connecter à Jupyter Notebook. Si vous exécutez Jupyter Notebook sur un serveur, vous devez vous connecter au serveur en utilisant un tunnel SSH comme indiqué dans la section suivante.

      À ce stade, vous pouvez garder la connexion SSH ouverte et laisser Jupyter Notebook fonctionner, ou vous pouvez quitter l’application et la relancer une fois que vous avez configuré le tunnel SSH. Choisissons d’arrêter le processus Jupyter Notebook. Nous le relancerons une fois que le tunnel SSH sera mis en place. Pour arrêter le processus Jupyter Notebook, appuyez sur CTRL+C, saisissez Y, puis ENTER pour confirmer. La sortie suivante sera affichée :

      Output

      [C 21:28:28.512 NotebookApp] Shutdown confirmed [I 21:28:28.512 NotebookApp] Shutting down 0 kernels

      Nous allons maintenant configurer un tunnel SSH afin de pouvoir accéder au Notebook.

      Étape 5 — Connexion au serveur à l’aide du tunnel SSH

      Dans cette section, nous allons montrer comment vous connecter à l’interface web de Jupyter Notebook en utilisant un tunnel SSH. Comme Jupyter Notebook fonctionne sur un port spécifique du serveur (tel que :8888, :8889 etc.), le tunnel SSH vous permet de vous connecter au port du serveur en toute sécurité.

      Les deux sous-sections suivantes décrivent comment créer un tunnel SSH à partir de 1) un Mac ou Linux, ou 2) Windows. Veuillez vous référer à la sous-section correspondant à votre ordinateur local.

      Tunnel SSH avec un Mac ou Linux

      Si vous utilisez un ordinateur local Mac ou Linux, les étapes de création d’un tunnel SSH sont similaires à l’utilisation de SSH pour se connecter à votre serveur distant, à la différence qu’il y a des paramètres supplémentaires dans la commande ssh. Cette sous-section expliquera les paramètres supplémentaires nécessaires dans la commande ssh pour créer un tunnel avec succès.

      Le tunneling SSH peut être réalisé en exécutant la commande SSH suivante dans une nouvelle fenêtre de terminal local :

      • ssh -L 8888:localhost:8888 your_server_username@your_server_ip

      La commande ssh ouvre une connexion SSH, mais -L spécifie que le port donné sur l’hôte local (client) doit être transféré à l’hôte et au port donnés du côté distant (serveur). Cela signifie que tout ce qui tourne sur le deuxième numéro de port (par exemple 8888) sur le serveur apparaîtra sur le premier numéro de port (par exemple 8888) sur votre ordinateur local.

      Vous pouvez éventuellement changer le port 8888 pour un port de votre choix afin d’éviter d’utiliser un port déjà utilisé par un autre processus.

      server_username est votre nom d’utilisateur (par exemple sammy) sur le serveur que vous avez créé et your_server_ip est l’adresse IP de votre serveur.

      Par exemple, pour le nom d’utilisateur sammy et l’adresse du serveur 203.0.113.0, la commande serait :

      • ssh -L 8888:localhost:8888 sammy@203.0.113.0

      Si aucune erreur ne se produit après l’exécution de la commande ssh -L, vous pouvez passer dans votre environnement de programmation et exécuter Jupyter Notebook :

      Vous obtiendrez une sortie avec une URL. Depuis un navigateur web sur votre machine locale, ouvrez l’interface web de Jupyter Notebook avec l’URL qui commence par http://localhost:8888. Assurez-vous que le numéro du jeton est inclus, ou entrez la chaîne du numéro du jeton lorsque vous y êtes invité à http://localhost:8888.

      Tunnel SSH avec Windows et Putty

      Si vous utilisez Windows, vous pouvez créer un tunnel SSH en utilisant Putty.

      Tout d’abord, entrez l’URL du serveur ou l’adresse IP comme nom d’hôte, comme indiqué : :

      Définissez le nom d'hôte pour le tunnel SSH

      Ensuite, cliquez sur SSH en bas du volet de gauche pour développer le menu, puis cliquez sur Tunnels. Entrez le numéro de port local que vous souhaitez utiliser pour accéder à Jupyter sur votre machine locale. Choisissez 8000 ou plus pour éviter les ports utilisés par d’autres services, et définissez la destination comme localhost:8888:8888 est le numéro du port sur lequel tourne Jupyter Notebook.

      Cliquez maintenant sur le bouton Ajouter, et les ports devraient apparaître dans la liste des ports transférés :

      Liste des ports transférés

      Enfin, cliquez sur le bouton “Open” pour vous connecter au serveur via SSH et passer les ports souhaités par le tunnel. Naviguez vers http://localhost:8000 (ou tout port que vous avez choisi) dans un navigateur web pour vous connecter à Jupyter Notebook tournant sur le serveur. Assurez-vous que le numéro du jeton est inclus, ou entrez la chaîne du numéro du jeton lorsque vous y êtes invité à http://localhost:8000.

      Étape 6 — Utilisation de Jupyter Notebook

      Cette section passe en revue les principes fondamentaux de l’utilisation de Jupyter Notebook. Si Jupyter Notebook n’est pas en cours d’exécution, lancez-le avec la commande jupyter notebook.

      Vous devriez maintenant y être connecté à l’aide d’un navigateur web. Jupyter Notebook est un outil très puissant doté de nombreuses fonctionnalités. Cette section présente quelques fonctions de base pour vous permettre de commencer à utiliser le Notebook. Jupyter Notebook affichera tous les fichiers et dossiers du répertoire à partir duquel il est exécuté, donc lorsque vous travaillez sur un projet, assurez-vous de le démarrer à partir du répertoire du projet.

      Pour créer un nouveau fichier Notebook, sélectionnez New > Python 3 dans le menu déroulant en haut à droite :

      Créez un nouveau notebook Python 3

      Ceci ouvrira un Notebook. Nous pouvons maintenant exécuter du code Python dans la cellule ou changer la cellule pour markdown. Par exemple, changez la première cellule pour qu’elle accepte le Markdown en cliquant sur Cell > Cell Type > Markdown dans la barre de navigation supérieure. Nous pouvons maintenant écrire des notes en utilisant Markdown et même inclure des équations écrites en LaTeX en les plaçant entre les symboles $$. Par exemple, saisissez ce qui suit dans la cellule après l’avoir modifiée pour la Markdown :

      # First Equation
      
      Let us now implement the following equation:
      $$ y = x^2$$
      
      where $x = 2$
      

      Pour transformer le markdown en texte riche, appuyez sur les clés CTRL et ENTER. Vous devriez recevoir un résultat similaire à celui qui suit :

      résultats du markdown

      Vous pouvez utiliser les cellules Markdown pour prendre des notes et documenter votre code. Appliquons cette équation et imprimons le résultat. Cliquez sur la cellule du haut, ensuite appuyez simultanément sur les touches ALT et ENTER pour ajouter une cellule en dessous. Entrez le code suivant dans la nouvelle cellule.

      x = 2
      y = x**2
      print(y)
      

      Pour exécuter le code, appuyez sur CTRL+ENTER. Vous obtiendrez les résultats suivants :

      résultats de la première équation

      Vous avez maintenant la possibilité d’importer des modules et d’utiliser le Notebook comme vous le feriez avec tout autre environnement de développement Python !

      Conclusion

      Félicitations. Vous devriez maintenant être en mesure d’écrire du code Python reproductible et des notes dans Markdown en utilisant Jupyter Notebook. Pour obtenir une brève présentation de Jupyter Notebook à partir de l’interface, sélectionnez Help > User Interface Tour dans le menu de navigation du haut pour en savoir plus.

      Maintenant, vous pouvez commencer un projet d’analyse et de visualisation de données en lisant Analyse et visualisation de données avec pandas et Jupyter Notebook en Python 3.



      Source link