Jupytext
前回、プログラムのバージョン管理をするために、GitHubに登録を行いました。
今回はそのGitHubにアップロードするためのプログラムの準備を行っていきます。
というのは今までJupyter notebook(Anaconda)を使ってPythonのプログラムを作成してきました。
その場合、保存されるプログラムの形式は「.ipynb」となり、純粋なPythonプログラム(.py)と比べて付加的な情報が含まれている状態になっています。
つまりGitHubにアップロードするのは純粋なPythonプログラム(.py)の方が分かりやすいので、バージョン管理しやすいということです。
ちなみに前に作成したPILで画像サイズを自動で変更するプログラムを例にとってみてみましょう。
こちらが「.ipynb」ファイルの一つ目のセル。
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from PIL import Image\n",
"\n",
"newname = \"test_\"\n",
"\n",
"iPhone_fix_size = [0, 100, 0, 0, 1000, 0] #[left, upper, right, lower, width, height] width&height 0 = keep ratio\n",
"MBAir_fix_size = [0, 290, 0, 0, 1000, 0]\n",
"iPadmini_fix_size = [0, 40, 0, 0, 1000, 0]\n",
"other_fix_size = [0, 0, 0, 0, 1000, 0]\n",
"\n",
"default_path =\"\"\n",
"\n",
"iPhone_ss_size = [1125, 2436]\n",
"MBAir_ss_size = [3104, 1834]\n",
"iPadmini_ss_size = [1536, 2048]\n",
"\n",
"ext_list = [\".png\", \".PNG\"]"
]
},
そしてこちらが全く同じファイルだけど「.py」形式で保存したファイルの一つ目のセル。
# +
import os
from PIL import Image
newname = "test_"
iPhone_fix_size = [0, 100, 0, 0, 1000, 0] #[left, upper, right, lower, width, height] width&height 0 = keep ratio
MBAir_fix_size = [0, 290, 0, 0, 1000, 0]
iPadmini_fix_size = [0, 40, 0, 0, 1000, 0]
other_fix_size = [0, 0, 0, 0, 1000, 0]
default_path =""
iPhone_ss_size = [1125, 2436]
MBAir_ss_size = [3104, 1834]
iPadmini_ss_size = [1536, 2048]
ext_list = [".png", ".PNG"]
明らかに「.py」形式の方がPythonの形式そのままになっています。
今回はこの「.py」形式を毎回自動で保存するように「jupytext」というjupyter notebookの拡張機能をインストールしていきましょう。
Jupytextのインストール
Jupytextをインストールするには、まずターミナルを開きます。
ターミナルの場所がわからない場合、Launchpad > その他 の中を探してみてください。
開くとこんなウインドウが現れます。
もし上のバーに「zsh」と書かれている場合は、シェルを変えるためにこちらのコマンドを打ち込んでください。
シェルに関しては詳しく説明しませんが、とりあえずはこのターミナルを動かすプログラム言語だと思ってもらえればいいです。
chsh -s /bin/bash
こちらのコマンドを実行すると、パスワードを聞かれますので、PCのログインパスワードを入力してください。
ちなみに文字を打ち込んでも鍵マークが増えたりしないので、気にせず打ち込んで、最後にEnterキーを押してください。
終わったら、一度ターミナルを閉じて、再度開きます。
開いたウインドウの上に「bash」と書かれていたら成功です。
何やらつらつらとメッセージが出ていますが、無視して大丈夫です。
次にjupytextをインストールするこちらのコマンドを実行します。
pip install jupytext
実行結果
Collecting jupytext
Downloading jupytext-1.10.2-py3-none-any.whl (290 kB)
|████████████████████████████████| 290 kB 2.0 MB/s eta 0:00:01
Requirement already satisfied: pyyaml in /opt/anaconda3/lib/python3.7/site-packages (from jupytext) (5.4.1)
Requirement already satisfied: nbformat in /opt/anaconda3/lib/python3.7/site-packages (from jupytext) (5.1.2)
(中略)
Installing collected packages: mdit-py-plugins, markdown-it-py, jupytext
Successfully installed jupytext-1.10.2 markdown-it-py-0.6.2 mdit-py-plugins-0.2.5
Note: you may need to restart the kernel to use updated packages.
最後の方に「Successfully installed jupytext-1.10.2」(バージョンの数字は変わるかも)と出てくればインストール成功です。
ここで一度ターミナルを終了し、再度開いておいてください。
Jupytextの設定
次にJupytextの設定を行っていきます。
再度開いたターミナル(bashとなっているのを確認して)で、こちらのコマンドを実行します。
jupyter notebook --generate-config
実行結果
Writing default config to: /Users/username/.jupyter/jupyter_notebook_config.py
すると「jupyter_notebook_config.py」というファイルが「/Users/username/.jupyter」というフォルダの下に作られます。
ちなみに「.jupyter」とフォルダ名の最初に「.」がついているフォルダ(ファイルも)は隠しファイルでFinderからは見ることができません。
このままターミナル上でこの「jupyter_notebook_config.py」をいじっていきます。
まずはターミナルを開いた時点で「/Users/username」というフォルダにいるはずですので、こちらのコマンドで「.jupyter」フォルダに入ります。
cd .jupyter
次にそのフォルダ内に「jupyter_notebook_config.py」があるかどうか、「ls」というコマンドを使ってフォルダの中身を確認します。
ls
実行結果
jupyter_notebook_config.py migrated
lab
次に「jupyter_notebook_config.py」を編集するため、こちらのコマンドを実行します。
vi jupyter_notebook_config.py
このコマンドで「vi」というテキストエディタで「jupyter_notebook_config.py」を開くことができます。
このviの操作に関してはこちらのページが詳しいので参考にしてください。
そのうちに私が必要だと思う最低限のコマンドだけまとめる予定です。
さて今回は「jupyter_notebook_config.py」の最後に次の一文を追加します。
c.ContentsManager.default_jupytext_formats = "ipynb,py"
その方法としてはまずは「shift + G」で一番最後の行に移動します。
そして「i」を押して「編集モード」にして、先ほどの一文をファイルの最後に追加します。
追加し終わったら「esc」(エスケープキー、通常キーボードの左上にあります)を押して「編集モード」を終了します。
最後に「:wq」と打つと保存して終了します。
これでJupytextの設定は終了です。
次にプログラムを保存するときから、「.ipynb」ファイルと「.py」ファイルが保存されるようになります。
次回はこの「.py」ファイルを使って、GitHubにアップロードするため、GitHub Desktopをインストールしていきます。
ではでは今回はこんな感じで。
コメント