web-dev-qa-db-fra.com

Liens entre les blocs-notes IPython

Est-il possible de lier un bloc-notes IPython à un autre avec un lien hypertexte dans une cellule Markdown? Si j'essaye

Link to [Notebook 2](files/notebook2.ipynb)

ou

Link to <a href="files/notebook2.ipynb">Notebook 2</a>

Un nouvel onglet s'ouvre avec le contenu brut non formaté du fichier ipynb. Existe-t-il un moyen d'obtenir IPython pour ouvrir un autre bloc-notes à utiliser dans un nouvel onglet via un lien hypertexte?

55
Mike

Depuis IPython 2, vous pouvez utiliser exactement la syntaxe que vous avez essayée pour la première fois:

Link to [Notebook 2](notebook2.ipynb)
83
akim

Il est désormais possible de le faire avec Ipython 1.0+ au moins.

Faites simplement: localhost: 8888/My Notebook.ipynb

Voici la documentation de cette fonctionnalité. https://github.com/ipython/ipython/pull/3058

21
DavidA

De http://python.6.n6.nabble.com/where-is-the-code-to-generate-IPython-Notebook-URL-for-a-new-ipynb-file-td4996991.html :

Vous pouvez accéder à une version json de tous les blocs-notes depuis url: $ Host/notebooks

Voici un extrait qui a fonctionné pour moi:

    import urllib2
    import json
    data = urllib2.urlopen("http://127.0.0.1:8888/notebooks")
    json_data=data.read()
    list_o_dicts=json.loads(json_data)
    for d in list_o_dicts:
        if d['name'] == 'test':
            print d['notebook_id']

Modifiez cela en fonction de vos besoins.

** En lisant plus loin, je viens de réaliser que OP cherchait également la création de nouveaux cahiers, gardant ma réponse quand même comme moyen de travailler avec la liaison de cahiers existants.

Une façon d'essayer l'objectif d'OP consiste à exécuter un script qui créera un nouveau fichier notebook.ipynb dans le dossier ipython à partir duquel le bloc-notes ipython a été démarré. Ce fichier .ipynb peut être basé sur un nouveau bloc-notes ipython créé à partir du tableau de bord, avec le nom et l'id du bloc-notes remplacés par tout ce que vous essayez de lier à partir de votre bloc-notes existant. Je n'ai pas essayé cela, mais devrait fonctionner car la suppression d'un fichier d'extension .ipynb dans le dossier ipython l'affiche dans le tableau de bord.

3
nom-mon-ir

En plus de la suggestion d'Akim - vous pouvez créer un lien vers n'importe quel fichier (py ou ipynb) en utilisant un lien relatif, en commençant par "modifier", puis à partir du répertoire où vous avez démarré le serveur.

Par exemple. dans une cellule de démarque, si je veux faire référence à un fichier dont l'emplacement relatif (par rapport à mon dépôt git, qui est également l'endroit où j'ai lancé le serveur de bloc-notes) est "./path/to/source.py", j'ajouterais:

[link to source](/edit/path/to/source.py)

1
Peter

Malheureusement, ce n'est pratiquement pas possible. Le lien devrait être vers l'ID du bloc-notes (par exemple / a1e2a88f-3b91-4a4e-8ca1-d4fd7240f75 pour celui sur lequel je travaille en ce moment). Il s'agit d'un UUID créé au démarrage par le serveur IPython. Vous pouvez donc copier le lien depuis le tableau de bord IPython, mais il ne sera valide que jusqu'au redémarrage.

0
lRem

N'oubliez pas que si votre nom de fichier contient des espaces, vous devrez remplacer ceux par% 20

par exemple:

[Numpy](Numpy%20For%20Python.ipynb)
0
Nick Leech