web-dev-qa-db-fra.com

importation de fonctions depuis un autre cahier jupyter

J'essaie d'importer une fonction d'un autre ordinateur portable jupyter

Dans n1.ipynb:

def test_func(x):
  return x + 1
-> run this

Dans n2.ipynb:

%%capture
%%run n1.ipynb
test_func(2)

Erreur:

NameError Traceback (most recent call last)<ipython-input-2-4255cde9aae3> in <module>()
----> 1 test_func(1)

NameError: name 'test_func' is not defined

Des moyens simples de le faire, s'il vous plaît?

7
vikky

Le module nbimporter nous aide ici:

pip install nbimporter

Par exemple, avec deux blocs-notes dans cette structure de répertoires:

/src/configuration_nb.ipynb

analysis.ipynb

/src/configuration_nb.ipynb:

class Configuration_nb():
    def __init__(self):
        print('hello from configuration notebook')

analysis.ipynb:

import nbimporter
from src import configuration_nb

new = configuration_nb.Configuration_nb()

production:

Importing Jupyter notebook from ......\src\configuration_nb.ipynb
hello from configuration notebook

Nous pouvons également importer et utiliser des modules à partir de fichiers python.

/src/configuration.py

class Configuration():
    def __init__(self):
        print('hello from configuration.py')

analysis.ipynb:

import nbimporter
from src import configuration

new = configuration.Configuration()

production:

hello from configuration.py
10
Oppy