Python >> Tutoriel Python >  >> Python Tag >> JuPyter

Jupyter 500 :erreur de serveur interne ; ImportError :impossible d'importer le nom ConverterMapping

(répondant à ma propre question)

D'après mon expérience, ces problèmes sont généralement causés par des problèmes de compatibilité entre les packages python installés via apt , et ceux installés via pip .

Malheureusement, je n'ai pas pu reconstituer la longue série d'étapes suivies pour installer l'environnement jupyter/scipy/etc. Certains paquets doivent avoir été extraits via apt et autres via pip , entraînant des conflits de versions.

Cette approche a initialement résolu le problème :

  • Suite à cette réponse, j'ai exécuté python -c "import site; print(site.USER_BASE)" pour trouver où pip installe --user forfaits
  • Pour moi, c'était ~/.local
  • J'ai déplacé ~/.local à ~/.local_disabled éliminer tous packages installés localement
  • À ce stade, Jupyter a fonctionné à nouveau, (il doit avoir été installé avec le système python via apt ).
  • Je n'ai ajouté qu'un sous-ensemble minimal de packages utilisateur et je garderai un œil sur les incompatibilités.
  • J'imagine éviter de tirer Jupyter/ipython via apt pourrait être un meilleur moyen d'éviter ce problème à l'avenir.

Après les mises à jour ultérieures du système, le problème est revenu

Cela semble confirmer que le problème est dû à une incompatibilité entre les packages python installés via apt et ceux installés via pip . Cette fois, pour résoudre le problème, j'ai :

  • Paquets python désinstallés qui ont été installés via apt (mais ne faisant pas partie du système central installé avec Ubuntu). Cela comprenait principalement jupyter et bon nombre de ses dépendances.
  • Réinstallation de Jupyter avec pip install jupyter --user .
  • Cela fonctionne (pour l'instant).

(N'hésitez pas à modifier/commenter/étendre cette réponse.)


J'ai eu une expérience similaire et j'ai trouvé la réponse de Mrule. La suppression/renommage .local a fonctionné pour moi aussi, mais sa solution à long terme n'a malheureusement pas fonctionné. J'ai donc creusé un peu pour trouver pourquoi la première solution fonctionnait.

Il s'avère que which jupyter renvoyé $HOME/.local/bin/jupyter quand .local n'a pas été supprimé et /usr/bin/jupyter quand je l'ai fait. Le problème était donc dans les packages pip (ceux installés dans .local par le pip install --user jupyter option).

J'avais déjà fait sudo pip uninstall jupyter plusieurs fois auparavant, mais cela ne supprime pas les packages dans .local (vois ici). Vous devez faire pip uninstall jupyter sans sudo pour désinstaller ceux du répertoire personnel (ou les supprimer manuellement). J'ai désinstallé tous les autres packages liés à jupyter dans mon système en les trouvant à l'aide de pip list | grep jupyter et apt list | grep jupyter .

Et puis finalement fait une nouvelle installation de jupyter via sudo apt install jupyter . Et maintenant, cela semble fonctionner.

L'essentiel est que les packages installés via pip à l'échelle du système et dans le répertoire personnel (.local ) et celui installé via apt étaient en conflit d'une manière ou d'une autre (je n'ai pas trouvé exactement pourquoi).


La solution la plus sûre consiste à créer un environnement virtuel et à y exécuter votre jupyter. Cela sépare clairement toutes les opérations de pip et apt. Cela a fonctionné pour moi. J'utilise Ubuntu

Pour créer un environnement virtuel, lancez :

1)sudo pip install --upgrade virtualenv (install virtualenv)

2)virtualenv  xyz --python=python3.7  (xyz is the name of the new virtual environment)

3) cd into the directory of xyz

4) source ./bin/activate 

5)pip install jupyter