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
~/.localstatt aus/opt/condageladen
Ü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:
- Speichern Sie Ihre Arbeit.
- Beenden Sie Ihren JupyterHub-Server.
- Starten Sie den Server erneut.
- 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:
jupyterlabnotebookjupyter-serverjupyter-server-proxyjupyterhub
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.