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.
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:
- Öffnen Sie den Log Viewer und überprüfen Sie die Serverprotokolle auf Fehlermeldungen.
- Wenn der Fehler durch Pakete oder Konfigurationsdateien in Ihrem Home-Verzeichnis verursacht wird, starten Sie den Rescue-Modus.
- 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 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.