我有用於原型設計和輔導的jupyter/ipython
筆記本。將ipython筆記本轉換爲可直接執行的python腳本
我出口它作爲使用菜單下拉或nbconvert
Python腳本,即
ipython nbconvert --to python notebook.ipynb
不過,我想提出notebook.py
可執行直接,而無需每次手動破解它,以便我可以繼續更新notebook.ipynb
並覆蓋我的更改notebook.py
。我也想在notebook.py
中包含命令行參數。我的樣板是,例如:
#!/usr/bin/env ipython
import sys
x=sys.argv[-1]
與chmod +x notebook.py
當然。
一條路線可能是在jupyter/ipython
筆記本中可以忽略這些行(可以是python或命令行指令) - 有沒有辦法通過這種方式來實現?檢測到jupyter/ipython
環境?
EDIT1:這等於是說:
我怎麼能包括在notebook.ipynb
線將在筆記本環境被忽略,但在從中產生notebook.py
解析?
EDIT2:這個問題的部分答案,但並沒有告訴我怎樣包括#!/usr/bin/env ipython
行:How can I check if code is executed in the IPython notebook?
EDIT3:可能是有用的,但前提是%%bash /usr/bin/env ipython
會工作 - 它會..? How do I provide inline input to an IPython (notebook) shell command?
Edit4:另一個試圖回答(細微):由於#
是Python中的評論,把#!/usr/bin/env ipython
在筆記本的第一個單元格意味着它將在jupyter/ipython
被忽略,但在出口notebook.py
尊重。然而,#!
指令是不是頂部,但很容易被砍掉:
> more notebook.py
# coding: utf-8
# In[1]:
#!/usr/bin/env ipython
# In[2]:
print 'Hello'
# In[ ]:
當你直接說,有什麼方法或門戶網站你指的是?你的意思是從Jupyter筆記本? – Landmaster
在* nix命令行上,例如'。/ notebook.py' - 我知道如何做到這一點,但我想(i)導出筆記本,並且(ii)使其可執行,而不必每次都手動破解它,也允許通過例如命令行參數'sys.argv' – jtlz2
我編輯了這個問題 - 編輯是否有意義? – jtlz2