Das Einrichten einer VM ist mühsam. Aber ich möchte eine Python-Entwicklungsumgebung für mehrere Personen ** billig ** machen. Qiita für diejenigen, die besorgt sind. Es ist ein Memo für mich.
Hoffentlich dauert es ungefähr eine Stunde.
Material --Raspberry Pi3 + (Ich wollte unbedingt Raspberry Pi4 Speicher: 4 GB)
Method
Installieren Sie zunächst mit apt das erforderliche Set auf jupyterhub.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install python3 python3-pip npm nodejs libnode64
Verwenden Sie als Nächstes pip3 und npm, um das Jupyterhub-Set und die Proxy-Funktion zu installieren. # 1
$ sudo pip3 install jupyterhub notebook wheel ipywidgets jupyterlab
$ sudo npm install -g configurable-http-proxy
Starten Sie JupyterHub lokal und überprüfen Sie den Betrieb. Wenden Sie sich zunächst an einen allgemeinen Benutzer.
$ /usr/local/bin/jupyterhub
Greifen Sie dann in Chromium auf dem Desktop des Raspberry Pi auf http: // localhost: 8000 / zu und bestätigen Sie, dass der folgende Bildschirm angezeigt wird. Der JupyterHub-Server kann mit `` `ctrl-c``` beendet werden.
Um es als Mehrfachbenutzer zu verwenden, müssen Sie es als Root-Benutzer starten. Starten Sie es also als root (sudo) und überprüfen Sie erneut, ob der obige Anmeldebildschirm angezeigt wird.
```Bash
$ sudo jupyterhub
```
Um JupyterHub zu konfigurieren, erstellen Sie die Quelle der Konfigurationsdatei in "/ etc / jupyterhub".
$ sudo mkdir /etc/jupyterhub
$ cd /etc/jupyterhub
$ sudo jupyterhub --generate-config #Lassen Sie diesen Befehl eine Standardkonfigurationsdatei erstellen
Dann wird "jupyterhub_config.py" ausgespuckt. Öffnen Sie es als Root-Benutzer und beheben Sie Folgendes:
```Bash
$ sudo vi /etc/jupyterhub/jupyterhub_config.py #vi oder was auch immer Sie mit Ihrem bevorzugten Texteditor mögen
```
```/etc/jupyterhub/jupyterhub_config.py
#Ich möchte standardmäßig jupyter lab verwenden, ändern Sie also Folgendes
c.Spawner.default_url = '/lab'
#Fügen Sie zugängliche Benutzer zur Whitelist hinzu
c.Authenticator.whitelist = {'User1, User2'}
#Administrator hinzufügen(Autorisiert, um allgemeine Benutzer zu trennen)
c.Authenticator.admin_users = {'User0'}
#Legen Sie fest, dass beim Zugriff auf den Notizbuchordner jedes Benutzerverzeichnisses verwiesen wird
#Es ist kein obligatorisches Einstellungselement, sondern ein Ort, an dem die Einstellungen geteilt werden.
c.Spawner.notebook_dir = '~/notebook'
```
Wenn "c.Spawner.notebook_dir" festgelegt ist, muss das Notizbuchverzeichnis (~ / notebook) jedes Benutzers im Voraus erstellt werden. (Referenzseite: https://qiita.com/atsushi_wagatsuma/items/89b714328663992b54f4)
Ausführliche Informationen zur Benutzerverwaltung finden Sie in diesem Artikel "Hinzufügen und Löschen von Benutzern".
Starten Sie abschließend jupyterhub und überprüfen Sie die Funktion.
$ sudo jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
...
[I 2020-02-23 11:10:12.687 JupyterHub app:2631] JupyterHub is now running at http://:8000 #Wenn diese Anzeige erscheint, ist der Start abgeschlossen!
Überprüfen Sie, ob sich der Administrator und der allgemeine Benutzer von localhost oder einem anderen Computer im Netzwerk aus anmelden können. Wenn Sie ein einfaches Python-Programm schreiben und es funktioniert, ist es in Ordnung!
Localhost:http://localhost:8000/
Network: http://<IP address>:8000/
Es hat vorerst funktioniert, aber ich muss bei jedem Start "$ sudo jupyterhub -f / etc / jupyterhub / jupyterhub_config.py" eingeben. Sehr nervig. Daher wird es zentral vom Systemd-Dienst verwaltet und so eingestellt, dass es beim Start von Raspberry pi automatisch gestartet wird.
$ sudo mkdir -p /opt/jupyterhub/etc/systemd #Erstellen Sie gemäß der Konvention einen Ordner wie diesen unter opt und legen Sie die Konfigurationsdatei dort ab.
$ sudo vi /opt/jupyterhub/etc/systemd/jupyterhub.service #Erstellen Sie eine neue Datei mit dem Texteditor wie vi und kopieren Sie die folgende Schrift und fügen Sie sie ein.
[Unit]
Description=JupyterHub
After=syslog.target network.target
[Service]
User=root
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" ExecStart=/usr/local/bin/jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
[Install]
WantedBy=multi-user.target
```
Erstellen Sie einen symbolischen Link zum Systemordner.
$ sudo ln -s /opt/jupyterhub/etc/systemd/jupyterhub.service /etc/systemd/system/jupyterhub.service
Laden Sie die Konfigurationsdatei mit systmctl neu. Stellen Sie dann den Jupyterhub so ein, dass er automatisch startet, wenn der Raspberry Pi startet. Versuchen Sie außerdem, es vorerst manuell zu starten.
$ sudo systemctl daemon-reload # config.Datei neu laden
$ sudo systemctl enable jupyterhub.service #Jupyterhub beim Start.Service startet automatisch
$ sudo systemctl start jupyterhub.service # jupyterhub.Starten Sie den Service manuell
$ sudo systemctl status jupyterhub.service #jupyterhub.Überprüfen Sie den Servicestatus.
# "Active: active (runnning)"Wird angezeigt, OK
● jupyterhub.service - JupyterHub
Loaded: loaded (/opt/jupyterhub/etc/systemd/jupyterhub.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-02-23 13:11:01 JST; 10s ago ... ```
Standardmäßig können Sie einen Benutzer, der auf JupyterHub zugreifen kann, von den Unix-Benutzern des Servers auswählen, auf dem JupyterHub installiert ist.
--Welcher Unix-Benutzer auf JupyterHubs ** Server-Start ** zugreifen kann, ist `` c.Authenticator.whitelist``` in der obigen
`/ etc / jupyterhub / jupyterhub_config.py```. Hinzugefügt zu.
Der Administrator wird ausgeführt, während der jupyterHub-Server ausgeführt wird Sie können das Hinzufügen / Löschen von Benutzern in der Jupyterhub-Webanwendung verwalten. Beachten Sie jedoch, dass diese Einstellung beim Neustart des jupyterHub-Servers zurückgesetzt wird **.
Offizielles Webdokument enthält weitere Informationen. ** Ein Muss für diejenigen, die es ernsthaft schaffen. ** ** **
Jupyterlab/hub-extension
Ab 2020.02.23 können Sie von `File-> Hub Control Panel
`von Jupyterlab zum Hub-Einstellungsbildschirm wechseln. Benötigen Sie keine Jupyterlab / Hub-Erweiterung?
Nachtrag (2020.02.23) Offiziell scheint diese Erweiterung in Jupyterlab integriert worden zu sein. Daher muss es nicht installiert werden. GitHub: jupyterlab/jupyterlab
This adds a "Hub" menu to JupyterLab that allows a user to log out of JupyterHub or access their JupyterHub control panel.
Python Library
Hinweis: Da ich eine `pip``` Gruppe bin, werde ich es nur beschreiben.
`Conda``` Sekte, wenn Sie googeln können ... m (_ _) m
Die Bibliothek, die Sie auf alle Benutzer anwenden möchten, wird mit sudo installiert und verwaltet.
$ sudo pip3 install <library name>
Die Python-Bibliothek, die jeder Benutzer installieren und verwalten möchte, kann durch individuelle Eingabe von Befehlen für jeden Benutzer mit "JupyterLab-> Launcher-> Andere-> Terminal" eingegeben werden.
$ pip3 install <library name>
Trouble-Shooting
Als ich versuchte, Jupyterhub zu starten, erhielt ich einen Proxy-bezogenen Fehlercode und konnte ihn nicht starten. Ich dachte, dass npm die Ursache ist, also tippte ich den Befehl npm ein, aber Birnenkies.
$ sudo npm
$ #Es wird nichts angezeigt
Es gibt keine Hilfe dafür. Löschen Sie daher die zugehörigen Elemente npn / node / nodejs und installieren Sie sie neu.
$ sudo apt remove node npm nodejs
$ sudo apt update #Aktualisieren Sie die Liste vorerst
$ sudo apt upgrade #Vorerst die neueste Version
$ sudo apt install node libnode64 npm
Geben Sie den Befehl npm ein. Es ist gut, weil die Version normal angezeigt wird.
$ sudo npm -v
5.8.0
Wenn Sie nur npm drücken, erhalten Sie eine Warnung, dass "npm- und Node.js-Versionen nicht übereinstimmen". Dies kann in Zukunft zu Problemen führen, aber jupyterhub funktioniert vorerst.
$ sudo npm
npm WARN npm npm does not support Node.js v10.15.2
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
Starten Sie jupyterhub und prüfen Sie, ob es normal startet.
$ sudo jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
...
[I 2020-02-23 11:10:12.687 JupyterHub app:2631] JupyterHub is now running at http://:8000
Wahrscheinlich aufgrund des Problems, dass die oben genannten Versionen von Node.js und npm nicht übereinstimmen und nicht wiederhergestellt werden können? Derzeit keine Maßnahmen (Stand 23. Februar 2020).
Great Web references for JupyterLab/Python Tolle Seite für diejenigen, die neu in Jupyter Lab / Python sind!
Reference
Recommended Posts