Androidのアプリ開発ではJavaかKotlinを使用しますが、chaquopyを使うことでAndroid Studioでpythonを用いることができます。
最新のchaquopy14ではAndroid Gradle Plugin Version7.4.0に対応しています。確認方法はFile>Project Structure>Projectです。デフォルトで最新の7.5.0が選択されているはずなので、ダウングレードする必要があります。ダウンロードやらが始まります。
また、現状ではPython3.11までに対応しています。ライブラリはすべてに対応しているわけではなく、バージョンが古い可能性があるので注意してください。chaquopyのバージョンアップで随時対応しています。https://chaquo.com/chaquopy/のnews欄から最新の対応状況を見ることができます。
導入
settings.gradleに以下を追加。以下タグ内の一番最初に追記してください。
pluginManagement {
repositories {
maven { url "https://chaquo.com/maven" } //これを追加
}
}
build.gradle(プロジェクトの方)のplugins{}内に以下を追加
id 'com.chaquo.python' version '13.0.0' apply false
build.gradre(アプリの方)のplugins{}内に以下を追加
id 'com.chaquo.python'
続いて、同じファイル内のdefaultConfig{}中に以下を追加。Python{}内のパスはPCにインストールされたPythonのパスを指定します。インストールしていない場合はしてください。windowsの場合は以下のコマンドでパスを調べられるので、それを使用。
>where python
C:\hoge\hoge\python.exe
区切りに\マークが使われているので、/に書き換えてください。
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
python {
buildPython "C:/<略>/Python/Python310/python.exe"
}
使い方
アプリ全体でPythonを使用したい場合、AndroidManifest.xmlのapplication{}内に以下を追加。(基本これでいいと思います)
android:name="com.chaquo.python.android.PyApplication"
「chaquo」がタイプミスとして波線が引かれるかもしれませんが、無視します。
app>src>mainディレクトリ(javaフォルダがある階層)にpythonという名前のフォルダを作成し、以降Pythonファイルはこのフォルダに置きます。chaquopyはここにあるpythonコードを読みに来ます。
MainActivity.java内で以下のようにインポートします。
import com.chaquo.python.*;
Python py = Python.getInstance(); //Pythonのインスタンスを取得
PyObject module = py.getModule("test"); //test.pyのモジュールを取得
//呼び出したい場所で以下のコード
module.callAttr("test");
//もしくは引数がある倍は以下(hogeは任意の変数名)
module.callAttr("test", hoge);
依存関係のインストール
pip installしたいモジュールはbuild.gradle(アプリの方)のpython{}(先ほど追記したもの)内に以下のように書きます。
pip {
install "example"
}