web-dev-qa-db-fra.com

Impossible d'importer des modules dans le bloc-notes jupyter; mauvais sys.path

Je rencontre un problème lors de l'importation de modules dans mon bloc-notes iPython/Jupyter. Le problème réside essentiellement dans la direction vers laquelle pointe sys.path.

Depuis le bloc-notes iPython/Jupyter, sys.executable Retour:

'/usr/bin/python'

Cependant, à partir de la ligne de commande, il renvoie:

'//anaconda/bin/python'

J'ai essayé de désinstaller et de réinstaller anacondas, mais le problème persiste.

J'ai également essayé d'augmenter $ PYTHONPATH dans mon bash_profile pour inclure // anaconda/bin/python, mais cela ne le résout pas.

Existe-t-il de toute façon de modifier le sys.path dans mon carnet jupyter de façon permanente, sans simplement utiliser sys.path.append (...)?

13
runawaykid
  1. Ouvrez une nouvelle fenêtre de terminal et voyez si cela aide. Sinon, passez à l'étape 2.

  2. Démarrez une session standard Python à partir du terminal et tapez ceci:

    >>> import sys
    >>> sys.executable
    
  3. Faites de même dans le cahier:

    In [1]: import sys
            sys.executable
    
  4. Comparez les résultats. Espérons que cela vous donne une idée de ce qui se passe.

3
Mike Müller

J'ai eu le même problème. Après avoir traversé de nombreuses (comme beaucoup trop) de solutions à ce problème trouvées ailleurs, je parviens à trouver une solution qui fonctionne au moins dans mon cas.

Étape 1: vérifiez le chemin exécutable correct de l'environnement anaconda.

Allez sur la ligne de commande, activez l'environnement conda qui pose problème et vérifiez le chemin exécutable correct pour l'environnement.

conda activate {envronment name};
puis sur python, (>>>) import sys;sys.executable

Par exemple, sous Linux, ce sera /media/{username}/{path-to}/anaconda3/envs/{environment name}/bin/python

Étape 2: corrigez le chemin exécutable pour les sessions jupyter.

À partir de la ligne de commande, vérifiez le chemin d'accès où kernel.json de votre environnement conda problématique est localisé.

jupyter kernelspec list

Par exemple sous Linux ce sera: /home/{username}/.local/share/jupyter/kernels/{environment name}

Ouvrez le kernel.json situé dans ce dossier et remplacez le chemin exécutable incorrect, comme indiqué ci-dessous.

{
 "argv": [
  "REPLACE-THIS-WITH-THE-CORRECT-EXECUTABLE-PATH",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "heterodimers",
 "language": "python"
}

J'espère que cela fonctionne aussi dans votre cas.

1
rraadd88