2013年1月9日水曜日

Python for Android に pip 突っ込めるようなので色々できそう

 

'Python curtis' photo (c) 1980, Ryan Somma - license: http://creativecommons.org/licenses/by-sa/2.0/

イェイへび年、というわけでPython来るから!ホントかよ!

かつてScripting Layer for Android(SL4A)というのがありまして、今もあるんですが、AndroidでPythonを始めとしたLLが動く環境を作るべというプロジェクトのひとつです。で、それのサブプロジェクトとしてPython担当のPython for Android(Py4A)というのがございます。それらを久々に見てみたらなんか結構遊べんじゃね?と思いましたという話です。

ちなみにpipというのはeasy_installを置き換えんとするもので、置き換えられる人と同様Pythonモジュールをコマンド一発でPyPI(Python Package Index)から探して持ってきて展開してくれる系のものです。これの導入が出来るとサクサクとモジュール突っ込めるようになって嬉しいねというわけです。

以下、具体的な導入手順。

・SL4Aとpy4a、及びPython本体のインストール

これはふつうの提供元不明アプリのインストール作業をしたら後はボタン一発という楽ちん作業になります。

提供元不明アプリのインストール許可設定はAndroidのバージョンによっていろいろだけど、4.2の場合は設定を開き、セキュリティ→デバイス管理→提供元不明のアプリ んとこにチェックしておいて下さい。

とりまAndroidのブラウザでSL4Aのプロジェクトページ行って、左のメニューのFeaturedのとこから最新のsl4aのapk(現時点ではsl4a_r6.apk)をダウンロードして開いてインストールします。インストールするとSL4Aというアプリになります。

 次に同様にAndroidのブラウザでpy4aのプロジェクトページ行って、Featuredラベルがついてて最新のやつ(現時点でPythonForAndroid_r6)をダウンロードして、開いてインストールします。インストールするとPython3 for Androidという名称のアプリになるので、これを起動して[install]ボタンを押しますとSL4AでPython3.2.2が使えるようになります。微妙に古いな(もしかしたら最新版追っかけてるパッケージもあるかもしれませんが自分は見つけられず)。

ちなみにPythonForAndroid_r5.apkを用いた場合はPython2.6.2が展開されるので、2系じゃないとヤダという人はこちらを使って下さい。こちらでpip突っ込めるかは試してないのでわかりませんがpip公式の導入手順とか見てがんばってください。

・sl4aでの基本的なpython実行方法

インストールで使うので軽くご説明。

前述のsl4a及びpy4a、Python3.2.2の導入が完了していると、/mnt/sdcard/sl4a という感じのフォルダ(SDカードのマウント先は端末によってチガウ場合があるけどSDカードの直下でsl4aフォルダ探してね)が掘られてまして、ここのscriptsに放り込んであげるとSL4Aから実行できるようになります。

SL4Aを起動するとこの放り込んだファイルが見えるので、これをタップして出てくるポップアップから左側のコンソールっぽいアイコンを選ぶと実行されます。


Screenshot 2013 01 09 07 03 41

処理が完了するかbackキー押すかすると、実行画面を閉じますか的なYes/Noボタンが出てくるので、Yesを押すと終了して前の画面に戻れます。

Screenshot 2013 01 09 07 23 26

 

・distributeとpipのインストール

pipのインストール手順に従って、Python3なのでまずdistributeを導入し、次にpipぶちこむという手順になります。ちなみにpy4aにpip入れられるじょんという話の出処自体はpy4aのPython3対応の説明ページからです。

まずは以下のインストール用Pythonスクリプトファイルを、何らかの方法で前述のSDカード直下のsl4a/scriptsフォルダに入れてあげます。

  • disribute用(ここのInstallation Instructions参照) > http://python-distribute.org/distribute_setup.py
  • pip用 > https://raw.github.com/pypa/pip/master/contrib/get-pip.py

次に、さっきの説明したpythonの実行方法で distribute_setup.py → get-pip.py の順で実行してやればインストールが完了します。わりと簡単。

・pipの使い方とその後のアレ

実は最初っからpy4aのpython3パッケにpip_console.pyというのが入ってまして、pipのインストール完了後にこいつを実行するとプロンプトが表示されので、ここで pip install ほにゃらら するとモジュールが突っ込めます。便利ですね。

Pip console

で、じゃあモジュール引き込むのが楽ちんな環境が出来ましたのでいざpythonやろうという話になるのですが、環境面でもうちょっとだけ。

  • SL4A Script Launcher を入れとくといいかも : SL4Aのスクリプトをタップした時に表示されるポップアップUIがクラッシュしちゃう端末があるので、その場合はこいつで起動するとよいです。あとバックグラウンド実行とフォアグラウンド実行が選べたりするのでなんかいいのかもしれません。
  • DroidEdit 等のソースコード編集を意識したエディタアプリ入れとくといいかも : ちょっとした修正はAndroid上でやりたい場合もありますが、SL4Aの編集機能はクソっていうかただのTextEdit貼っただけの代物なので、なんかPython対応の良いエディタ探して入れとくといいと思います。

個人的にはTornadoとかBottleとか入れてサーバーやったら楽しいかなぁとか目論んでいます。まあなんかやってみて!

0 件のコメント:

コメントを投稿