jupyter notebookをmatlabで使う / Google Driveにnotebookを保存
ポ○ットモンスター 金/銀 みたいなタイトルですが、iPythonのセットアップについてです。
難易度はそこそこある気がします。「なみのり」を覚えてから来てください。
- 前提:Python環境
- jupyter notebookをmatlabで使う
- jupyter notebook を GoogleDrive上で扱う。
- Matlabが古いけど無理やりでもこの機能を試したい!
前提:Python環境
私の環境ではとりあえずWindowsでやるつもりでいます。
一連のパッケージ環境を整えるにはanacondaもしくはminicondaを使うのが良いでしょう。
あと、GitHubの一部コマンドが必要なので適当に調べて入れておきましょう。
例えばここを見るとか。
私家版 Git For Windowsのインストール手順 | OPC Diary
Anacondaを使う場合(簡単・ストレージを割りと食う)
Anacondaは一連のPython関連の便利パッケージを落としてくれるのでPythonに今後お世話になる気のある人はこちらを使いましょう。
デフォルトで2Gくらい容量持って行かれるので注意。
下の記事を参照。
ossyaritoori.hatenablog.com
画像関係に興味がある方はこちらの記事も踏んでおいたほうがいいですが、まぁ後からできるので無理にすることはないです。
ossyaritoori.hatenablog.com
Minicondaを使う(ストレージを沢山消費したくない人向け)
先ほどのAnacondaの機能絞った板がこちらです。
Miniconda — Conda
Pythonとcondaのパッケージ管理だけなので数百Mの容量で済むはず(試してない)
どのみちやることは同じです。
jupyter notebookをmatlabで使う
以下の参考サイトに準拠してすすめます。
Matlab-based IPython notebooks | Anne UraiGitHub - Calysto/matlab_kernel: Jupyter Kernel for Matlab
Install MATLAB Engine API for Python - MATLAB & Simulink
0.Python(仮想) 環境構築
MatlabのバージョンごとにPythonの対応するバージョンが違います。
現状2015a,bでPython2.7系とPython3.3,3.4
現状2017bではじめてPython3.5がサポートされます。
これは
「C:\Program Files\MATLAB\R20XXa\extern\engines\python」にあるsetup.pyというファイルを覗けばわかります。
バージョンとか何も考えずに次に行きたい!という方はAnacondaのダウンロードの際に2.7を選択すると良いです。
ただ,今後継続してPythonを使う人は3.X系のほうが良いかもしれないです(バージョンごとに微妙に文法が違う)
次に仮想環境の構築についてです。
私の2015bの場合はPython3.4までが対応ですのでAnacondaの現在の3.6と噛み合いません。
ということで仮想環境を立てます。
conda create -n matlab python=3.4
次に,デフォルトではipythonが入っていないので
activate matlab conda install jupyter notebook
とうちます。多分合ってると思うけどドチャクソ容量持って行かれますねこれ。
追跡したらAppdataの中を1Gくらい占拠していました。空き容量には余裕をもってください。
1.Matlab engineのインストール
anacondaから使いたい環境を選んでactivateしておいてください。(activateの単語に身に覚えのない人は気にせずanacondapromptを起動しましょう)
この際管理者権限でプログラムを実行したほうが良いです。
WindowsのHomeボタンで「AnacondaPrompt」とサーチして出てきたアイコンを右クリック&「管理者権限で実行」を選択しましょう。
以下を実行してください。2014以前のバージョンにはこのsetup.pyが含まれていません。中身書き換えて移せばなんとかなるんじゃね?なりませんでした。
cd "matlabroot\extern\engines\python" python setup.py install
matlabbootはmatlabがおいてあるPathです。
頑張って探してください。参考までに私のは以下のような感じです。(なおバージョンが古くてなかった模様)
C:\Program Files\MATLAB\R2007b\
上手くいったら2へとすすんでください。
エラーが出たら?
- Pythonのバージョン云々言われたら仮想環境の設定を確認してください。
きちんとactivate matlabってやって仮想環境入ってます?ダメなら先ほどの章を確認。
- その後厄介なのが管理者権限が無いことでおきるエラー
以下のようなエラーが出る事があると思います。
error: could not create 'build': アクセスが拒否されました。
Error Installing MATLAB engine API for Python - MATLAB Answers - MATLAB Central
ということでコマンドプロンプトを管理者権限で実行してください。
setup.pyがあるフォルダまで移動して,次のようにうちます。
"C:\Users\__USER__\AppData\Local\conda\conda\envs\matlab\python.exe" setup.py install
めっちゃ長いのはさっきの仮想環境のPythonのFullPathです。
__USER__には自分のユーザ名を入れてください。というか一度ちゃんと探すと良いでしょう。
- うまくいくとこんな感じ?
最後の行でエラーって出てなければ多分上手く行ってると思います。
なんだこれは戦後の教科書か。
2.必要パッケージのインストール
その後、自分の環境で以下のコマンドをうってください。
pip install matlab_kernel python -m matlab_kernel install
jupyter notebook を GoogleDrive上で扱う。
GitHubでソース管理するのもいいけどGoogleDriveにもおいておきたい!という方のために、拡張プラグインが開発されています。
github.com
日本語記事もこちらに。
jupyter-driveを使ってみる
インストール
これだけ。
git clone https://github.com/jupyter/jupyter-drive.git pip install -e jupyter-drive
起動
複数やり方はありますが、以下のように設定するのがおすすめ。
python -m jupyterdrive --mixed
下のような画面になりました。
localをクリックするとlocalのフォルダへ、gdriveを選択するとGoogleDriveへのアクセス許可を求められます。
Matlabが古いけど無理やりでもこの機能を試したい!
結論上手く行ってませんので諦めて新しいバージョンのmatlabに課金してください。
以上が「通常の手法」です。
matlabやpython,ipythonのバージョンが合わなかったりするととたんに闇のゲームへと突入します。
ちょっと調べただけでもうげぇとなるようなケースがちらほら。
anaconda3-4.2.0 (Python3.5.2) 環境で Jupyter Notebook 上で MATLAB R2017a API の使用ができないのはなぜですか? - MATLAB Answers - MATLAB Central
matlab live editorという逃げの1手
わりかし似たような事ができるものとしてLive editorというものがあるようですが...
www.mathworks.com
これで勘弁してくれないですかね。
さぁ、闇のゲームだ!
例えば強制的にengine以下のフォルダを持ってきてpythonスクリプトを修正して発動してしまうのはどうでしょう?
只今奮闘中...
追記:敗北しました。古いmatlabのバージョンでは騙せなさそう...
さらに追記:
setup.pyをいじってバージョン違いでもエラーを出さないように加工してもやはり最後に以下のようなエラーが出ます。
諦メロン
第二ラウンドだ!
Jupyter: Matlab Kernel Dies · Issue #22 · Calysto/matlab_kernel · GitHub
以下のコマンドを導入...
pip install metakernel pip install pymatbridge
追記:敗北しました。ていうかどこかしこを探しても無理って言ってますね。公式に楯突くのはやめておきましょう。