【Android Studio】chaquopyでPythonを使ったアプリ開発をしよう

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"
}
タイトルとURLをコピーしました