前フリだけで終わってしまった前回の記事を反省しつつ,今回はいきなり本題に入ります。
結論だけ先に書いておくと,現時点で Pythonista3 に TensorFlow を入れて使えるようにはできなかったのでこの先は FF13 のごとく「敗北の物語」です。なぜ FF13 のことなど言い出したかは前回記事をご覧ください。
StaSh のインストール
まずは Pythonista3 上で shell 環境のようなコンソールを扱えるスクリプト StaSh を入れます。
英語のサイトですが,一言で言えば Pythonista3 のインタプリタのところで,
import requests as r; exec(r.get('http://bit.ly/get-stash').text)
を実行しろ,ということです。
インタプリタを出す
Pythonista3 を起動します。
テーマを変更しているので標準の色とは多少異なります。表示されている内容は変わらないと思います。美しい外見ですね。素晴らしいアプリです。インタプリタを表示するには,この画面の右側から左側へスワイプします。
まあこれがわからなかったんですけどね。あちこち調べてみたらスワイプすればいいとありました。そうするとインタプリタの画面が出てきます。Ruby などにもありますが,対話型でプログラムを実行することができる環境です。
インストールする
この一番下のところに先ほどの 1 行をコピペして実行します。内容を解説しておくと,
import requests as r
は Requests
という Python で有名な「人間のための HTTP」と謳うライブラリを取り込みます。Requests
は Pythonista3 に標準で入ってます。
r.get('http://bit.ly/get-stash').text
は少し書き直すと,
requests = r.get('http://bit.ly/get-stash')
response = requests.text
という感じでしょうか。実は Requests
は最近仕事でもちょっと使ったんです。指定した URL に get で投げて,そのレスポンスの内容をテキストで取得しています。最後に exec
で囲んでいるので取得したスクリプトを実行するのでしょう。
これを実行すると,
>>> import requests as r; exec(r.get('http://bit.ly/get-stash').text) Downloading https://github.com/ywangd/stash/archive/master.zip ... Unzipping into /private/var/mobile/Containers/Shared/AppGroup/xxxxx/Pythonista3/Documents/site-packages/stash ... Preparing the folder structure ... Installation completed. Please Restart Pythonista and run launch_stash.py under the Home directory to start StaSh.
というメッセージが画面上に流れます。このまま止まってますのでよく読むと「Pythonista を再起動して StaSh
を開始するためにホームディレクトリの直下にある launch_stash.py
を実行してください」ということのようです。
iPhone/iPad でアプリの再起動はホームボタンを 2 回素早く押してマルチタスキングの画面を出して,Pythonista を上にスワイプします。そしてもう一度 Pythonista を起動します。
下から 2 番目に launch_stash.py
がいました。
StaSh を起動する
この launch_stash.py
をタップすると,
スクリプトが表示されます。実行されるわけではありません。この画面はまずスクリプトの編集画面になりますので。この画面で右上の△が右を向いているアイコンをタップすると実行します。
起動しました。あとはみんな大好き shell のコンソール画面です。
TensorFlow のインストールを試みる
それでは次に TensorFlow のインストールを試みます。StaSh を起動した状態で,
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0rc0-py3-none-any.whl
を実行してみます。まあこの時点で mac 版しかないんでダメかなという気もしていたのですが。
なにやらエラーが。単に環境変数へ設定するだけなんでエラーもひったくれもない気がしたんですが,export
コマンドがないと。そうですか。ないんですね。ないんじゃしょうがない。
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0rc0-py3-none-any.whl
安易にとりあえず環境変数じゃなくてそのまま URL で書けばいいんじゃね?という結論に。ちなみにこれだと --upgrade
オプションがないと怒られたので,最終的に実行したのは,
pip install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0rc0-py2-none-any.whl
です。
ダメだ。
[~/Documents]$ pip install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0rc0-py2-none-any.whl Working on URL repository ... Error: cannot find a valid archive file at url: https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0rc0-py2-none-any.whl
Python3 系と 2 系の両方で試してみましたが結果は同じでした。うーん,とりあえず iOS 端末に入れる適当なライブラリが見つからんのかな?実験的に試してみただけなのでとりあえず現時点では諦めました。StaSh を入れることができたので多少は Pythonista についても進展があったので良しとしたいと思います。
さしあたり TensorFlow については引き続き mac で実行しつつ書籍を読み進めます。