我正在尝试将android studio中的python se作为后端代码用于处理变量并产生答案。我的MainActivity是Java语言,并为python代码创建了一个目录。当我尝试用python编写代码时,提示“没有为模块配置python解释器”,我添加了Chaquopy和Python社区插件。我也想知道如何将MainActivity的变量发送给python,反之亦然。
我正在尝试在android studio中添加python。我尝试过Chaquopy以及Python Community Plugin。我也尝试在其他地方和指南中找到答案。但是到目前为止没有运气。
buildscript {
repositories {
google()
jcenter()
maven{url "https://chaquo.com/maven"}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
classpath "com.chaquo.python:gradle:0.5.0"
}
}
Run Code Online (Sandbox Code Playgroud)
这是MainActivity,我想将变量“ a”发送到python文件以对其进行处理。
package com.example.testingpython;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int a=2;
String[] array={"My","Name","Java"};
}
Run Code Online (Sandbox Code Playgroud)
}
我在 Chaquopy android studio 项目中的 python 代码:
import torch as tc
from transformers import GPT2Tokenizer, GPT2Model
def generate_text(txt):
"""
Generate chat
https://huggingface.co/gpt2
"""
#Load Model files
tokenizer = GPT2Tokenizer.from_pretrained('assets/') #This line causing error
model = GPT2Model.from_pretrained('assets/')
#Move moel to GPU if avilable
device = tc.device("cuda" if tc.cuda.is_available() else "cpu")
model.to(device)
encoded_input = tokenizer(txt, return_tensors='pt')
output = model(**encoded_input)
return str(output)
Run Code Online (Sandbox Code Playgroud)
现在它显示以下错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.chaquopy_130application, PID: 4867
com.chaquo.python.PyException: HFValidationError: Repo id must use alphanumeric chars or '-', '_', '.', …Run Code Online (Sandbox Code Playgroud) 是否有可能在android中使用Chaquopy获取由python类发送的多个值?
我发现https://chaquo.com/chaquopy/doc/current/python.html#java.cast 中缺少如何使用这些非常有用的功能的示例。
我希望有更多的例子来展示如何执行我一直在努力执行的一些任务。例如解释是否可以将二维 Java 数组转换为 Python 列表、数组或张量。甚至只是了解使用 java.cast() 的语法是什么。