Ich möchte die * .ipynb- Dateien als Quelle der Wahrheit verwenden und sie programmgesteuert in .py-Dateien für geplante Jobs / Aufgaben "kompilieren".
Ich verstehe das nur über die GUI. Gibt es eine Möglichkeit, dies über die Befehlszeile zu tun?
ipython
ipython-notebook
Stefan Krawczyk
quelle
quelle
input
Schlüssel iterieren , wobeicell_type
"Code" gleich ist. Schauen Sie sich dieses Schema anAntworten:
Wenn Sie nicht jedes Mal, wenn Sie speichern, ein Python-Skript ausgeben oder den IPython-Kernel nicht neu starten möchten:
In der Befehlszeile können Sie Folgendes verwenden
nbconvert
:Als Hack können Sie den obigen Befehl sogar in einem IPython-Notizbuch aufrufen, indem Sie ihn vorab ausstehen
!
(wird für jedes Befehlszeilenargument verwendet). In einem Notizbuch:Vor
--to script
wurde hinzugefügt , war die Option--to python
oder--to=python
, aber es wurde umbenannt in der Entwicklung hin zu einem sprachunabhängig Notebook - System.quelle
jupyter
können Sienbconvert
über Hooks vor oder nach dem Speichern auslösen :ContentsManager.pre_save_hook
abdFileContentsManager.post_save_hook
. Sie würden einen Haken nach dem Speichern hinzufügenjupyter nbconvert --to script [notebook]
jupyter nbconvert --to script /path/to/notebooks/*.ipynb
# In[ ]:
Typmaterial im Skript sauber ist? Gibt es eine Möglichkeit, das zu tun?Wenn Sie alle
*.ipynb
Dateien aus dem aktuellen Verzeichnis in ein Python-Skript konvertieren möchten , können Sie den folgenden Befehl ausführen:quelle
Hier ist eine schnelle und schmutzige Möglichkeit, den Code aus V3- oder V4-Ipynb zu extrahieren, ohne Ipython zu verwenden. Es werden keine Zelltypen usw. überprüft.
quelle
newlines='\n'
dritte Argument in den Aufruf der geöffneten Ausgabedatei ein. (Python 3.x)Nach dem vorherigen Beispiel, jedoch mit der neuen Version nbformat lib :
quelle
Sie können dies über die IPython-API tun.
quelle
Jupytext ist für solche Konvertierungen gut in Ihrer Toolchain zu haben. Es ermöglicht nicht nur die Konvertierung von einem Notizbuch in ein Skript, sondern Sie können auch wieder vom Skript zum Notizbuch zurückkehren. Und sogar das Notizbuch in ausgeführter Form produzieren lassen.
quelle
%pip install jupytext
in Ihrem Notebook ausführen .Zum rekursiven Konvertieren aller Dateien im * .ipynb-Format im aktuellen Verzeichnis in Python-Skripte:
quelle
--to script
Argument hinzufügen , um die Standard-HTML-Ausgabe in Jupiter 4.4.0 zu vermeiden.Ich hatte dieses Problem und versuchte online die Lösung zu finden. Obwohl ich einige Lösungen gefunden habe, haben sie immer noch einige Probleme, z. B. die lästige
Untitled.txt
automatische Erstellung, wenn Sie ein neues Notizbuch über das Dashboard starten.Also schrieb ich schließlich meine eigene Lösung :
Um dieses Skript zu verwenden, können Sie es hinzufügen
~/.jupyter/jupyter_notebook_config.py
:)Beachten Sie, dass Sie möglicherweise das Jupyter-Notebook / -Labor neu starten müssen, damit es funktioniert.
quelle
Es gibt ein sehr schönes Paket namens nb_dev , das zum Erstellen von Python-Paketen in Jupyter Notebooks entwickelt wurde. Wie
nbconvert,
kann es ein Notebook in eine Py - Datei drehen, aber es ist flexibler und leistungsfähiger , weil es viele nette zusätzliche Authoring hat zu helfen , Funktionen , die Sie entwickeln Tests, Dokumentation und registrieren Pakete auf PyPI. Es wurde von den fast.ai Leuten entwickelt.Es hat eine gewisse Lernkurve, aber die Dokumentation ist gut und insgesamt nicht schwierig.
quelle