Zum Inhalt

Konflikte mit vom Benutzer installierten Jupyter-Paketen beheben

JupyterHub stellt zentral verwaltete Versionen von JupyterLab und Notebook bereit. Pakete, die zuvor in Ihrem persistenten Home-Verzeichnis installiert wurden, können diese Versionen überschreiben und Kompatibilitätsprobleme verursachen.

!!! Hinweis: „Lässt sich Ihr JupyterHub-Server nicht starten?“ Wenn Ihr regulärer Server weiterhin startet, befolgen Sie die Anweisungen auf dieser Seite über ein Terminal.

Wenn der Server startet oder nicht startet:

1. Öffnen Sie den [Log Viewer](log_viewer.md) und überprüfen Sie die Serverprotokolle auf Fehlermeldungen.
2. Wenn der Fehler durch Pakete oder Konfigurationsdateien in Ihrem Home-Verzeichnis verursacht wird, starten Sie den [Rescue-Modus](rescue.md).
3. Verwenden Sie den Rescue-Modus, um die konfliktauslösenden Dateien wie unten beschrieben zu sichern, umzubenennen oder zu reparieren.

Wenn Sie sich an den [Support](../support.md) wenden, fügen Sie die relevanten Fehlermeldungen bei, geben Sie jedoch keine Passwörter, Tokens, Cookies oder andere sensible Informationen an.

Dies geschieht häufig nach der Ausführung von:

python -m pip install --user ...

Mögliche Symptome

  • Kompatibilitätswarnungen bei JupyterLab-Erweiterungen
  • Fehlende oder fehlerhafte Einträge im Launcher
  • Unterschiedliches Verhalten bei bestehenden und neuen Benutzern
  • Pakete werden aus ~/.local statt aus /opt/conda geladen

Überprüfen Sie die Speicherorte der Pakete

Öffnen Sie ein Terminal und führen Sie folgenden Befehl aus:

python - <<‚PY‘
import jupyterlab
import notebook

print(„JupyterLab:“, jupyterlab.__version__, jupyterlab.__file__)
print(„Notebook:“, notebook.__version__, notebook.__file__)
PY

Pakete, die vom JupyterHub-Image verwaltet werden, sollten normalerweise aus folgendem Verzeichnis geladen werden:

/opt/conda/lib/pythonX.Y/site-packages/

Ein Pfad unterhalb des folgenden Verzeichnisses weist auf ein vom Benutzer installiertes Paket hin:

~/.local/lib/pythonX.Y/site-packages/

Test ohne vom Benutzer installierte Pakete

Führen Sie Folgendes aus:

PYTHONNOUSERSITE=1 jupyter labextension list

Wenn die Warnungen verschwinden, überschreiben Pakete in Ihrem Home-Verzeichnis wahrscheinlich die Pakete des Images.

Das Problem beheben

Wenn Ihr regulärer JupyterHub-Server startet, führen Sie die folgenden Befehle in einem JupyterHub-Terminal aus.

Falls der Server nicht startet, überprüfen Sie zunächst den Log Viewer. Wenn die Protokolle darauf hindeuten, dass vom Benutzer installierte Pakete oder Dateien in Ihrem Home-Verzeichnis den Fehler verursachen, starten Sie den Rescue-Modus und führen Sie dort die Reparaturbefehle aus.

Ermitteln Sie zunächst Ihre Python-Version:

python -c ‚import sys; print(f„{sys.version_info.major}.{sys.version_info.minor}“)‘

Für Python 3.12 sichern Sie die vom Benutzer installierten Pakete mit folgendem Befehl:

mv ~/.local/lib/python3.12/site-packages \
   ~/.local/lib/python3.12/site-packages.backup-$(date +%Y%m%d-%H%M%S)

Sichern Sie außerdem die vom Benutzer installierten JupyterLab-Erweiterungen:

if [ -d ~/.local/share/jupyter/labextensions ]; then
    mv ~/.local/share/jupyter/labextensions \
       ~/.local/share/jupyter/labextensions.backup-$(date +%Y%m%d-%H%M%S)
fi

Diese Befehle benennen die Verzeichnisse um, anstatt sie zu löschen.

Anschließend:

  1. Speichern Sie Ihre Arbeit.
  2. Beenden Sie Ihren JupyterHub-Server.
  3. Starten Sie den Server erneut.
  4. Laden Sie JupyterLab neu.

Überprüfen Sie das Ergebnis

Führen Sie die Überprüfung des Paket-Speicherorts erneut durch. JupyterLab und Notebook sollten nun aus /opt/conda geladen werden.

Sie können auch die Erweiterungen überprüfen:

jupyter labextension list
jupyter server extension list

Zukünftige Konflikte vermeiden

Installieren oder aktualisieren Sie keine zentralen Jupyter-Pakete mit pip install --user, insbesondere:

  • jupyterlab
  • notebook
  • jupyter-server
  • jupyter-server-proxy
  • jupyterhub

Verwenden Sie für zusätzliche Projektpakete stattdessen eine virtuelle Umgebung oder eine Conda-Umgebung.

Support

Sollte das Problem weiterhin bestehen, wenden Sie sich an das JupyterHub-Support-Team und fügen Sie die Ausgabe der folgenden Befehle bei:

python -m site
python -m pip list --user
jupyter labextension list

Geben Sie keine Passwörter, Tokens, Cookies oder andere sensible Informationen an.