[PYTHON] Convertir .ipynb en .html (avec BatchFile)
Conclusion
--Mettez un fichier batch et cliquez! Ensuite, j'ai fait quelque chose qui convertit le .ipynb directement en dessous en html.
- Cela fonctionne même dans un environnement sans python (devrait)
--toc2 (fonction de table des matières) est automatiquement inséré ← Point recommandé de cette fonction! </ Strong>
- Je l'ai fait sur mac, mais cela peut fonctionner si je le reconstruis sous Windows. (non confirmé)
Contexte
――Il est difficile de démarrer un serveur local et d'ouvrir un notebook à chaque fois pour vérifier le contenu d'une grande quantité de .ipynb envoyés. De plus, si vous travaillez dans un répertoire différent pour d'autres entreprises, vous devrez mettre en place un certain nombre de serveurs locaux, ce qui ne sera pas l'entreprise.
Méthode existante
--Méthode 1: Convertir @yorshka .ipynb en .html
jupyter nbconvert --to html hoge.ipynb
- Méthode 2: Officiel: Personnalisation de nbconvert
--htmlized à l'aide de template ("simplepython.tpl" dans l'exemple ci-dessous). Avec cette méthode, la table des matières de nbextension telle que toc2 peut être incluse au format html.
jupyter nbconvert --to python 'example.ipynb' --stdout --template=simplepython.tpl
- Méthode 3: Ouvrez et enregistrez noebook sur LocalServer
Problèmes / problèmes qui ne peuvent pas être résolus
――C'est douloureux quand il faut voir beaucoup de .ipynb
--Oubliez le chemin dans template.tpl
- Le mouvement du répertoire est gênant
- Vous devez mettre différents packages (jupyter, nbconvert, nbextensions, toc2.tpl etc ...) dans l'environnement python. (Je veux que l'environnement soit simple!)
- ↑ Je ne me souviens plus de l'existence du paquet car j'ai créé un environnement virtuel et je l'ai remplacé de temps en temps.
approche
Implémentez le traitement basé sur l'interface graphique. (Combinaison des commandes de méthode existantes dans un fichier exécutable.)
- Le paquet utilisé
--pyinstaller: 1 Créer un fichier exécutable
--jupyter: utilisez des fonctions telles que nbconvert pour convertir en texte-> format notebook-> html
--jinja2: utilisé lors du chargement de template.tpl
- Différents modèles chargés par jinja2 lors du lancement du notebook jupyter tels que toc2.tpl, full.tpl ...:
――Si vous avez envie du contenu spécifique, je vais l'ajouter
- git link
Effet / conclusion
- Cela fonctionne correctement jusqu'à présent, et il est pratique d'être converti en html en 5 secondes.
- Les défis restants
- La taille du fichier est grande (environ 50 Mo) et cela met la pression sur le disque dur.
- Le temps de traitement est long. Si possible, je veux que vous finissiez la conversion html en environ 0,5 seconde.
Bonus (là où je suis resté coincé)
-
J'ai eu du mal à intégrer les modèles dans le fichier batch.
Parce que pyinstaller n'a pas reconnu le fichier modèle suivant. C'est un fichier essentiel pour que jinja2 convertisse du texte en html.
- toc2.tpl
- full.tpl
- nbextensions.tpl
- mathjax.tpl
- celltags.tpl
-
Pour résoudre ↑, j'ai codé en dur .tpl et créé un fichier à lire sous forme de chaîne. (Data_tpl.py) Il semble que pyinstaller reconnaisse .pyfile sans autorisation.
―― Après cela, si vous convertissez le modèle lu par chaîne avec jinja2.dictLoader, vous pouvez hériter de jinja2 ({% -extends'hogehoge.html '%}) sans autorisation.