Carnet Jupyter: Importation.ipynb de fichiers et d'y accéder de la méthode dans d'autres.fichier ipynb donnant l'erreur

Je suis assez nouveau au carnet Jupyter. J'ai joué avec lui pendant un certain temps. Mais c'était la première fois que j'essayais d'importer un autre carnet dans ma classe principale.

pour référence, J'utilise Anaconda 4.3.1 et Python v2.7.

j'essaie de répliquer ce que j'ai fait dans mon projet python aux carnets jupyter. Il nécessite l'importation d'autres .fichiers ipynb (traduits de l'original .PY files) pour utiliser les méthodes appropriées.

pour cela, j'ai suivi les directions données sur Jupyter Nbviewer Steps Link que j'ai trouvé par ma recherche préliminaire sur la pile suivante Question . Ça m'a donné une idée, mais ça ne m'a pas aidé après une étape.

je vais vous guider à travers les étapes que j'ai prises et le programme d'échantillon que j'ai essayé.

  1. a Créé un petit .ipynb fichier abc.ipynb comme suit

    def prt_n(str):
        print(str)
    if __name__ == '__main__':
        prt_n("in abc")
    
  2. Créé un .fichier ipynb pour importer le carnet Jupyter du lien Jupyter indiqué ci-dessus. Dire, de l'importateur.ipynb.

  3. Run importateur.ipynb

  4. import abc

  5. str="Hello Me"

  6. Test de l'étape abc.__name__ résultats abc en sortie.

  7. abc.prt_n(str) lance l'erreur suivante

--------------------------------------------------------------------------- Retraçage de l'AttributeError (dernier appel en date)) dans () ---- >1 abc.prt_n (str) AttributeError: l'objet 'module' n'a pas d'attribut 'prt_n'

j'espérais que la réponse sera Hello Me .

plus tard, je veux créer un myMain.ipynb fichier et dans ce que je veux inclure 2-3 tels Ordinateurs portables et appeler leurs méthodes avec les paramètres requis.

un de ces exemples peut être un fichier efg.ipynb comme suit:

import abc a="Hello Notebook" abc.prt_n(a)

je veux aussi m'assurer s'il y a une autre façon de faire cela?

Note: j'ai déjà vérifié sys.exécutable et sys.chemin. Les deux ont la même valeur de chemin python.

toute forme d'aide est la bienvenue!

2
demandé sur anugrah 2017-06-02 22:23:30

2 réponses

* *

lien vers des fichiers échantillons sur Drive

* *

Ok. Donc, après une certaine lutte et en regardant autour D'Internet, et finalement trouvé une solution qui a fonctionné pour mon cas échantillon.

tout d'abord, c'est la question stackoverflow qui m'a été la plus utile. La réponse de Mohideen et Tyhela était la véritable solution et non pas celui avec le plus grand nombre de voix.

donc, ce que j'ai fait était, j'ai fait un dossier par le module de nom et placé tout mon .les fichiers ipynb sont là. De plus, j'ai créé un fichier __init__.py dans ce module en utilisant la commande touch __init__.py de sorte que l'import puisse l'enregistrer comme un module valide. Ces gars ont donné une explication détaillée qui semble légitime.

puis, à partir de mon répertoire de travail, j'ai exécuté les commandes suivantes:

str = "Hello Me"
import test.abc as tabc
tabc.prt_n(str)

qui m'a donné Hello Me dans la sortie.

et pour,

`import test.efg as tefg`

je suis

importing Jupyter notebook from test/efg.ipynb Hello Note

comme sortie désirée.

j'espère que ceci sera d'une aide pour d'autres qui atterrissent sur le même problème.

si vous avez une meilleure approche, alors j'apprécierai si vous pouvez partager cela avec moi.

Merci :)

3
répondu anugrah 2017-06-05 17:07:09

Simple façon d'utiliser les fichiers ipynb dans jupyter note book sont les suivants:

1) Installer import-ipynb

pip install import-ipynb

2) Importer import_ipynb dans le carnet jupyter. Ensuite, importez le fichier ipynb au fur et à mesure que vous importez .dossier py

import import_ipynb
from test import print_name

print_name("your name")
2
répondu Veera Raghavendra 2018-07-03 10:00:00