web-dev-qa-db-fra.com

sys.path différent dans Jupyter et Python - Comment importer ses propres modules dans Jupyter?

Dans Jupyter, mon propre petit module n’est pas chargé, mais en python/bpython, tout va bien. En tapant

import sys
print(sys.path)

le chemin d'accès à mon module ne sera pas affiché dans Jupyter mais en python/bpython, il est toujours là.

J'utilise:

  1. PYTHONPATH dans .bashrc pour inclure mon module,
  2. Jupyter et bpython dans une virtualenv.

Les questions les plus similaires sont les suivantes Impossible d'importer des modules dans jupyter notebook; sys.path incorrect

Comment configurer Jupyter pour charger mes modules automatiquement?

44
ulf

Voici ce que je fais sur mes projets dans jupyter notebook,

import sys
sys.path.append("../") # go to parent dir
from customFunctions import *

Ensuite, pour affecter les changements dans customFunctions.py,

%load_ext autoreload
%autoreload 2
32
Dogan Askan

Jupyter a sa propre variable PATH, JUPYTER_PATH.

Ajout de cette ligne au .bashrc fichier a fonctionné pour moi:

export JUPYTER_PATH=<directory_for_your_module>:$JUPYTER_PATH
15
N. P.

Jupyter est basé sur ipython, une solution permanente pourrait être de changer les options de configuration d’ipython.

Créer un fichier de configuration

$ ipython profile create
$ ipython locate
/Users/username/.ipython

Editer le fichier de configuration

$ cd /Users/username/.ipython
$ vi profile_default/ipython_config.py

Les lignes suivantes vous permettent d’ajouter votre chemin de module à sys.path

c.InteractiveShellApp.exec_lines = [
    'import sys; sys.path.append("/path/to/your/module")'
]

Au démarrage de jupyter, la ligne précédente sera exécutée

Ici vous pouvez trouver plus de détails sur ipython config https://www.lucypark.kr/blog/2013/02/10/when-python-imports-and-ipython-does-not/

6
Mattia Fantoni