駅前散策ブログ@かわさき HOT

日本の会社の評価は「それまで」しか見ないんだよ。「これから」は見ていないし、タレマネ的にかなり遅れている。

【Python】Android端末でPython:Pydroid3について簡単に書いてみるよ!

2018-12-28 13:24:08 | Android 関係
// このドキュメントは日本の方向けに書かれています。
// このドキュメントにはコピーを防止する幾つかの対策が取られています。
// 最終更新日:20240415


(´・ω・)ノ < らいなーです。

11月からPythonを学習しているのですが、パソコンが比較的大きなサイズで持ち運びしながら学習するのが大変なため、スマートフォンで勉強できる環境を整えて学習しています。
利用しているのはPydroid3というAndroid版アプリケーションで、快適に扱うためには課金も必要にはなり、メリットばかりではありませんが、
かなり活用できたので、
メモがてら、記事に起こしてみたいと思います。






■それはどのようなソフトウェアですか?

ダウンロードはこちらから行うことができます:
Pydroid 3 - Educational IDE for Python 3(Gppgle Playへ)


「Pydroid 3 - Educational IDE for Python 3」はロシアのノヴォシビルスク、リアプノフ
に拠点を置くベンダー IIEC が作成した プログラム言語 PythonのIDEであり、
【広告を含む·アプリ内購入あり】のアプリケーションとなります。
ちなみに公式情報ではビジネスオペレーターの方のお名前はイリヤ・クリヤキンとおっしゃる方のようです。デビット・マッカラムですねわかります。

無料版では、Pythonファイルの1回、ないしは複数回の実行ごとに広告が
挿入されます。これは、Pythonを学習する方(例えば重いPCを持ち運ばずに
喫茶店などで書籍とスマホでPythonのコーディングを学習したい方など)
にとっては煩わしく感じられるかもしれません。




有料版については、Premium forever の購入額が日本円で1,160円となります。
このプレミアムを購入することで、無料版で挿入される広告などを除外する
ことができます。



2018年12月現在の最新バージョンは 2.22_arm であり、
組み込まれているPythonインタプリタのバージョンは 3.6.2 となっています。

20210209 追記:
2021年02月現在のPydroid3のバージョンは
4.01_arm64、組み込みPythonのバージョンは、
default 3.8.3、2020年5月ビルドGCC9.3.0となっています。

20210701 追記:
2021年07月現在も組み込みPythonのバージョンは変わらず 3.8.3 で、そろそろセキュリティアップデートしか提供されなくなる都合、ベンダーには3.9.6以降への更新をお願いしたいところですね!

20211203-1445追記:
2021年10月末に更新された新しい
Pydroid_3_5.00_arm64では、
組み込みPythonのバージョンが更新され、
2021年10月6日リリース版のPython3.9.7
が利用されています。

20221228-1411追記:
まる一年間更新がありませぬ。
ロシアウクライナ戦争の影響でしょうか。
しかしウクライナ側のアプリ、たとえばRiddleなどは開発が活発ですから、制裁の影響がでているのかも。
気付けばPythonも3.10.xになりました…。



併せて、Pydroid_3_5.00_arm64では、
起動時にウィザード形式のメニューが
表示されるようになり、Pydroidの利用
状況に関する質問に答える必要があります。
(英語の質問で、ローカライズはされていませんが、Pydroidをなんの目的で使います?とか、そんな質問が3つ程度なされます。)

起動時に表示されるウィザード形式のメニューの最後には、設定に連携するTweak項目が
表示されますので、必要に応じて右側の
スイッチング項目を切り替えましょう。
設定に関する日本語の補足は、以下の
キャプチャをご確認下さい。


20230129-1840追記:
2023年01月10日付け登録、Play Storeでは昨日01月28日に最新版は6.1_arm64になりました。


しかしPythonコアの更新は無いようで、依然として、Python3.9.7が使われている様子です。



以下、20240329追記:
2024年03月末現在の最新バージョン7.2_arm64では、

組み込みPythonのバージョンはだいぶ進み、
3.11.4が組み込まれています。

以上、20240329追記:







■競合アプリとの比較

Pydroidには競合アプリがあり、中国製の「Qpython3L」が存在します。
ベンダーはRiver Yanさんという方で、中国北京市は昌平区、回龍観鎮
(現地読み:ふいろんがん/日本語読み:かいりゅうかん)に拠点があります。

20211203-1500追記:
2020年02月05日のv3以降、長らく更新が
行われておらず、組み込みPythonの環境が
古いです。よってPythonの脆弱性が改善
されていない環境でコードを書くリスクが
生じています。
また、駅前散策ブログの独自調査においては
所謂SuperUserパーミッションの要求時に
不振なプログラム動作をすること、並びに
北京に向けた不振なトラフィックがバックグラウンドで「アプリを停止しているにも関わらず」発生することから、
「紅堕ち」した可能性が考えられるため、
使用はあまりお薦めしません。



公式サイト:https://www.qpython.com/

Qpython3Lのダウンロードはこちらから行うことができます(注:このリンクは2024年04月現在、もう古いです!):
https://play.google.com/store/apps/details?id=org.qpython.qpy3

Pydroid3との違いについては、以下のような違いがあります。
 ・ 広告があるが原則無料である。広告により定期的にバックグラウンドで
   通信が発生する。
   (その分インストールされている絶対数はPydroidより多く、PyDroidは
   日本のGooglleストアで10万程度、QPython3Lは100万程度となっています。)
 ・ インストール時に要求される実行権限がPyDroidと比較すると少し多い

   

 ・ 2018年12月現在の最新バージョンは1.3.2、組み込まれているPythonインタプリタ
   のバージョンは 3.2.2 となっています。

   →2021年02月現在の最新バージョン3.0.0では、
    組み込まれているPythonインタプリタのバージョンが3.6.6となり、ベータ版で必要とされていたpython3.6更新用プラグインは不要になりました。
    

 ・ 有料にはなるものの、Taskerプラグインに対応しており、Taskerはもちろん、MacroDroidから自動連係し、
   QPythonで管理しているPythonソースコード、およびそれにより行われる処理を
   自動化することが可能です。

以下、20240415追記=====
依然としてGoogle Play Store版は2020年02月05日のv3以降動きがありませんが、気づけばオープンソース化がなされた様子であり、GitHub側 → Releases · qpython-android/qpython
から、apkがダウンロード可能となっています。組み込みPythonのバージョンは、2024年04月現在の最新版である、QPython v3.2.3において、Python3.11.0となっています。利用は無料ですが、プライバシーポリシーへの同意が必要であり、ポリシーが英語記載、ならびに、一部のコンソールメッセージに簡体字中國語がまだ残っています。

GitHub版v3.2.3のキャプチャは以下。







ん?もしかして…
アプリが新しいものに変わって、PlayStoreのリリースページも新規に作成した疑惑あり…

QPython - Learn Python & AI - Apps on Google Play

QPython is mainly aimed at programming learners

こっちがGoogle Play側の、2024年04月現在の最新版のようです。

以上、20240415追記=====



■Pydroid3の良い点と悪い点

 (良い点)
  ・Pythonの比較的最新版のインタプリタが組み込まれており、
   PIPにより Jupiter Notebook や、Numpy、Matplotlibなどが問題なく
   動作することが可能です。
  ・課金すれば、広告による通信を(買い切りで)抑えられます。
  ・Androidタブレットなどに導入しておけば、例えば iOSにおける iPad+Pythonista
   環境のような、コンパクトかつオフラインの学習環境を手に入れることができます。

 (悪い点)
  ・付属のIDEがお世辞にも優秀と言えません。
   たとえば()をIDEが挿入したあとでキーボードで文字を打つと、)が消えます。
   また、IDEによる文法チェックの速度も速くなく、Windows環境におけるPyCharmなどの
   文法チェックと比較すると、機能が劣る点は否めません。
  ・日本語キーボードに対応していません
   インタプリタ自体は日本語に対応していますが、インタプリタに喰わせるコードを
   編集するためのIDEが日本語に対応していませんので、Andoroidの他のアプリケーション
   (コードエディタ機能を持つエディタ、例えば有料版アプリであれば、Jota+QuickEditer
    もしくは、無料ですがXDAアプリケーションであるMixPlorer付属のコードエディタ機能
    を用いる必要があります。)


■かんたんなTips

 ・Pythonコンソールの起動

  コードエディタ画面左上のハンバーガーメニューをタップ>Interpreter
  でPythonコンソールに入ることができます。

  
  
  

  とくに、オライリー社の販売する「Pythonチュートリアル」などでは、本文中の記載が
  Pythonコンソール記述になっているので、学習時にはPythonコンソールで打ち込む必要が
  あるでしょう。 私はそれに気が付かずにprint関数を挿入するようにしていましたが…。

 ・ターミナルの起動

  

  コードエディタ画面左上のハンバーガーメニュをタップ>Terminal
  でターミナルを起動できます。

  

  たとえば python -V することで、Pythonのバージョンを確認できます。
  Windows環境ではよくPathのチェックで行う確認手順のひとつですが、PyDroidではPython
  コンソール起動時にちゃんとバージョンが出るようになっていますので、あまり意味は
  感じられないかもしれません。

  

  なお、ターミナルからでも「python」コマンドを入力し、エンターキーを押していただく
  ことで、ターミナル画面からPythonコンソールを呼び出すことができます。
  ※復帰はBluetoothキーボード上ならCtrl+Dしてください。ソフトウェアキーボードでは
   面倒なので、コンソール/ターミナルモード時の左上に表示される「←」ボタンをタップ
   して、一度モードから抜けて頂くのが簡単な方法となります。



■2018年末から2019年始の休暇期間でPythonに触れたいんだけどおすすめ無い?

 この記事は2018年の年末に書かれているので…。

 スラスラ読める Pythonふりがなプログラミング (ふりがなプログラミングシリーズ)

 あたりが、入門としてざっくり学ぶのにはおすすめだと思います。
 何をしてくれているのかちゃんとひらがなで書いているのは好感がもてました。

 ターゲットはプログラミングしたことのない方がAndroid端末と本を片手に喫茶店で
 学習するとして、5日以内に終わりそうな書籍を選んでいます。
 らいなーは3日で終わりました。(2時間×3日、元VB.net/PHPのエンジニアで12年の
 ブランクを抱えた人が久しぶりにコーディングしてだいたい6時間から8時間程度の想定)

 若い衆ならもっと早いんだろうね!こういうのは!!


 なおオライリー社の「Pythonチュートリアル」は価格帯もお手頃で初心者向け、
 っぽいですが、実際のところ慣れた人がTips的に使うものなので、急に「内包」
 とか出てきて困惑すること請け合いです。

 初心者はリストとタプルの違いで困惑する(VB.net技術者ですらちょっと困惑した)
 可能性がありそうなので、そうした意味でも違いをしっかり書いてくれている技術書
 に触れて頂くのがとっつきやすいのではないかと思います。

◼️最後に

最後になりますが、多少のお金は掛かるものの、柔軟かつ高度な分析ができるPythonの実行環境が手元のスマートフォンに格納されている、という点は非常に魅力的です。
iOS環境にもPython実行環境があり「Pythonista」と呼ばれます。
こちらは2018年12月27日現在はお値段なんと600円になっています。
魅力的過ぎたので買っちゃいましたが、「Pythonista」はサンプルPythonコードもアプリケーションに付属していて、お膳立てが素晴らしいと感じました。iOS環境をお持ちの方は、そちらをご検討頂いてもよろしいかと存じます。

タダで最新のPython環境をiOS上でやりたい、
という方は「a-shell」で検索すると幸せに
なれるかもしれません。
コマンドラインで、bsh、エディタはvimだそうですがpythonは3.9.xが組み込まれているそうですよ!
りんご系なのにzshじゃないんですね。ふーしーぎーw



*nanoは使えませんでした。vimには入れるけど操作方法をすっかり忘れていました。vimから抜けるには「:」を押して「q」保存する場合は「:」を押して「wq」ですね。ESC無いからどうしたもんかと…
*Smart Keyboardで操作すると、以前WebSSHの作者さんにはGitで報告して直して頂いた「スペース効かないバグ」があるようで、コマンドオプションが指定できません。報告入れたのでFix待ち。(ついでにNanoもよろしく的な依頼で)
→ option + space でスペースを入れられるそうです!


◼️おまけ:Termuxでなら、タダでPythonできなくもない

Termuxを導入した人向け。
事前に apt update
apt upgrade
を行ってから…
*コマンド二発も打ちたくないめんどくさがりさんには→apt update && apt upgrade -y



apt install python をプロンプトから実行。



容量をこれだけ使いますとメッセージが出るので、容認できればyと入力しエンターで実行



Python3.8.3で通信料約40MiB 、解凍後約250MiB を消費するようです。







暫くするとインストールが完了。
pythonコマンドでコンソール起動。





コンソールの終了はexit()。


あとは、
エディタにNano を使う場合なら、
pkg install -y nano したり、


Geekな人はapt install vimして「やだ…私のvim…使いにくい…」するのも良いでしょう。:wq

Termux上のNanoエディタは、他のAndroidのエディタアプリからのコピペに対応はしていますので、たとえばJota+やQuickText、MoonWriter等でコードを書いて実行するのが楽ですよ。

ファイルの保存はCtrlボタンを押した後xを選ぶのが基本のようです。

実行は、
python {実行対象ファイル名}.pyで。



PIP周りの参考情報は、英語ですが、
Termux WikiのPythonページを参照下さい。

・よりマニアックにPythonできない?
そんな貴方にPython電卓
値段的には中古のスマホにPydroid入れるのと同じぐらい。主ににわかPython使いに圧をあたえる使い方、または軽度の関数・統計計算が発生して、かつHPの名機と呼ばれる計算機とか好きな人にオススメ。



以上でこの記事は終わりです。
ここまでお読みくださりありがとうございました。


この記事についてブログを書く
« 新年仕様 | トップ | 来年の日記ノートの買い出し »