使用 chaquopy 开发的应用程序会在部署时产生问题吗?
Posted
技术标签:
【中文标题】使用 chaquopy 开发的应用程序会在部署时产生问题吗?【英文标题】:Will apps developed using chaquopy create issues while deployment? 【发布时间】:2021-10-01 01:34:42 【问题描述】:我想使用 chaquopy 在 android Studio 中进行 java/kotlin 和 python 代码之间的通信。下面显示的是我的构建 gradle 文件:
plugins
id 'com.android.application'
id 'com.chaquo.python'
android
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig
applicationId "com.example.image_processing_using_chaquopy"
python
pip
install "numpy"
install "opencv-contrib-python-headless"
install "pillow"
sourceSets
main
python
srcDirs = ["src/main/python"]
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk
abiFilters "armeabi-v7a", "x86"
python
buildPython "C:/Users/hp/AppData/Local/Programs/Python/Python39/python.exe"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
dependencies
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
在这里,我们提供了 python.exe 本地路径,并且 chaquopy 也没有在依赖项中列出。在安卓手机或其他一些外部设备上部署这个应用程序会导致任何问题吗?
【问题讨论】:
【参考方案1】:这里,我们给出 python.exe 本地路径
这只影响构建过程:运行时不使用此路径。事实上,即使我们愿意,它也无法在运行时使用,因为 Android 应用无法直接访问您计算机的文件系统,即使您使用的是模拟器。
但是,为了让其他开发人员更容易构建您的源代码,最好删除 buildPython
行并允许 Chaquopy 在 PATH 上找到 Python,正如它在 the documentation 中所说的那样。如果您使用默认设置从 python.org 安装 Python,那么 py
启动器将已经在 PATH 上,因此这将自动运行。
chaquopy 也没有在依赖项中列出
没问题:文件顶部的 Chaquopy 插件会添加任何必要的依赖项。
【讨论】:
以上是关于使用 chaquopy 开发的应用程序会在部署时产生问题吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 android studio 中使用 chaquopy 运行 python 脚本
如何在使用 Chaquopy 时在 android 中显示加载动画
Android Studio 无法使用 chaquopy python 打开 COM 端口