ipython notebook のファイルをダブルクリックで開く @ OS X
ipython notebook の .ipynb ファイルをダブルクリックで開きたい人がいます(私です).
他のひともそういうことを考えているみたいです👸
osx mountain lion - Open an ipython notebook via double-click on osx - Stack Overflow
上記のリンクでは Ubuntu ようのシェルスクリプトがのっていますが, OS X の Finder はシェルスクリプトに優しくないのでこのままでは使えません💢✋
この記事では Finder と 上記のスクリプトをつなぐ glue を OS X に付属する Automator で作る…というのをやります😩
やりかた
1. Automator を起動 & 新規ファイルで Application をえらぶ
2. run shell script を左上の検索欄からしらべる
3. このアクション(というのかな?)を右の Application receives files and folders as input
というところの下にドラッグしていきます.勝手に繋がります👺👍✨
右上の pass input:
というところを as arguments
にしておきます.
4. シェルスクリプトを書きます.このスクリプトは osx mountain lion - Open an ipython notebook via double-click on osx - Stack Overflow を改変したものです.ここからはただのシェルスクリプトなので,好きなことを書けばいいです👮 アプリとして適当な場所に保存します.
PORTSTAT_IPYNB=`netstat -tln | grep "8902" | wc -l` #echo "$PORTSTAT_IPYNB" > ~/Desktop/hoge.txt if [ "$PORTSTAT_IPYNB" -eq "0" ] then #bash -cl 'ipython notebook / --no-browser --port=8902 & sleep .5' > /dev/null 2>&1 & bash -cl 'ipython notebook / --no-browser --port=8902 & sleep .5' > /dev/null 2>&1 sleep .5 fi for f in "$@" do open http://localhost:8902/notebooks"$f" done
2015/08/30 Automator で作ったアプリから ipython のサーバを起動させるためには,xdg-open
がopen
になってるのは OS X だからです.他には,for
ループが増えています.それだけです👍ipython notebook
を直接叩くのではなく,bash -cl 'ipython notebook / --no-browser --port=8902 & sleep .5' > /dev/null 2>&1
とせねばならないようです.またif文も間違っていました.これで動いていたような気になっていたのは,すでにサーバが立っている状態で動作を確認していたからです.戸惑わせてしまった方,申し訳ありません.
5. hoge.ipynb とかを適当に選んで右クリック→ Get info で Open with で先ほどのアプリを選びます. info ウィンドウで Change All... を選べばOKです👺👺👺
間違いなど発見したらご連絡ください💫