Konvertieren ipython notebook direkt ausführbares python-Skript

Ich habe eine jupyter/ipython notebook, dass ich für das prototyping und Nachhilfe.

Exportiere ich es als python-Skript mit dem dropdown-Menü oder nbconvert, d.h.

ipython nbconvert --to python notebook.ipynb

Allerdings würde ich gerne machen notebook.py ausführbare Datei direkt, ohne es zu hacken, die von hand jedes mal um, ich kann es halten die Aktualisierung notebook.ipynb und überschreiben notebook.py mit meinen änderungen. Ich habe auch command-line Argumente, die in notebook.py. Mein Textvorschlag ist, zum Beispiel:

#!/usr/bin/env ipython
import sys
x=sys.argv[-1]

mit chmod +x notebook.py natürlich.

Einer route werden könnte, um diese Linien (werden Sie python oder command-line-Richtlinien), ignorable in der jupyter/ipython notebook - gibt es eine Möglichkeit, dies zu tun, indem Sie z.B. erkennen der jupyter/ipython Umfeld?

Edit1: Dies ist gleichbedeutend zu sagen:

Wie kann ich Zeilen in der notebook.ipynb werden ignoriert in der notebook-Umgebung, sondern analysiert in notebook.py generiert aus?

Edit2: Diese Frage ist eine teilantwort, aber sagt mir nicht, wie die #!/usr/bin/env ipython Linie: Wie kann ich überprüfen, ob der code ausgeführt wird, in der IPython-notebook?

Edit3: Könnte nützlich sein, aber nur, wenn %%bash /usr/bin/env ipython funktionieren würde, wäre es..? Wie kann ich die inline-Eingabe für eine IPython (notebook) shell-Befehl?

Edit4: Anderen versucht zu beantworten (subtile): Seit # ist ein Kommentar in python, putting #!/usr/bin/env ipython in der ersten Zelle des Notebooks bedeutet, dass Sie ignoriert werden in jupyter/ipython, aber respektiert in der exportierten notebook.py. Jedoch, die #! Richtlinie ist nicht an der Spitze, kann aber einfach abgeschnitten werden:

> more notebook.py 

# coding: utf-8

# In[1]:

#!/usr/bin/env ipython


# In[2]:

print 'Hello'


# In[ ]:
Wenn Sie direkt sagen, welche Methode oder portal beziehen Sie sich? Meinst du von der Jupyter notebook?
Auf der *nix-Kommandozeile, d.h. ./notebook.py - ich weiß, wie dies zu tun, aber ich will (i) exportieren Sie das notebook und (ii) machen Sie es ausführbar, ohne es zu hacken mit der hand jedes mal, auch so für Kommandozeilen-Argumente, z.B. über sys.argv
Ich habe bearbeitet die Frage - gibt es die Bearbeiten-Sinn?

InformationsquelleAutor jtlz2 | 2017-08-10

Schreibe einen Kommentar