JupyterノートブックをPythonから生成する方法です。
import nbformat
nb = nbformat.v4.new_notebook()
title = "# タイトル"
code = """
%matplotlib inline
from sympy import *
# to print with mathjax on jupyter notebook
init_printing()
"""
nb["cells"] = [
nbformat.v4.new_markdown_cell(title),
nbformat.v4.new_code_cell(code)
]
with open("output.ipynb", "w") as f:
nbformat.write(nb, f)
これで、色々便利なことができそうですね。
PyCharmでカスタムした.ipynbを生成する
PyCharmはPythonの統合開発環境(IDE)です、非常に強力な補完機能を持っており最強のPython開発環境です。
実はPyCharmはJupyterと連携が可能で、Jupyterの表現力+PyCharmの強力な補完機能はかなり快適です。
ただし、数式を扱う場合はPyCharmのJupyter出力は貧弱ですので、ブラウザ版のJupyterを使った方がよいでしょう。
ですので、PyCharmのJupyterは使いません、かわりにExtranal Tools
を使います。
.ipynb生成スクリプトを作る
どこか参照しやすい場所に以下のスクリプトを作成します。
#!/usr/bin/env python3
# coding:utf-8
import sys
import os
import nbformat
output_dir = sys.argv[1]
output_file = input("input ipynb name:")
nb = nbformat.v4.new_notebook()
title = "# タイトル"
code = """
%matplotlib inline
from sympy import *
init_session()
"""
nb["cells"] = [
nbformat.v4.new_markdown_cell(title),
nbformat.v4.new_code_cell(code)
]
if not output_file.endswith(".ipynb"):
output_file += ".ipynb"
with open(os.path.join(output_dir, output_file), "w") as f:
nbformat.write(nb, f)
print("ok.")
PyCharmのExternal Toolとして登録する
PyCharmの「File(F)」メニューを開き、「Settings...」を選択します。
設定ダイアログの「Tools」→「External Tools」を選択して、「+」ボタンを押します。
設定ダイアログが出るので、以下の項目を追加します。
項目 | 入力 |
---|---|
Name | 適当な名前を入れてください |
Description | 適当な説明をいれてください |
Program | JupyterがインストールされているPythonパス |
Parameters | 先ほどのスクリプトパス $FileDir$ |
PyCharmの右クリックメニューから.ipynbが生成可能に!
PyCharmの右クリックメニューから「External Toos」→「登録したツール名」を選択します。
コンソールにファイル名を入力すると、最初から色々入力済みの.ipynbファイルが生成されます。
参考
https://pypi.python.org/pypi/nbformat
https://github.com/jupyter/nbformat