Python 学习笔记 —— 使用Chaquopy在AndroidStudio调用Python库

引言

跟随前一篇文章,本篇将尝试,引入python库,并且调用方法。
(上一篇:Python 学习笔记 —— 使用Chaquopy在AndroidStudio添加Python环境,java和python互调
Chaquopy 支持的python库在这个链接里面可以查到:https://chaquo.com/pypi-2.1/

继续添加 python库的调用

如图在app目录下的build.gradle中,在之前添加的python结构中添加pip指令。
其中install的库需要是Chaquopy 支持的库中的。不支持的库运行一下会有报错。
在这里插入图片描述
然后在python目录中新建callPyLib.py文件,
在这里插入图片描述
代码如下,爬虫+numpy调用,还画了个❤

from bs4 import BeautifulSoup
import requests
import numpy as np

# 爬取网页并解析
def get_http():
    requests.packages.urllib3.disable_warnings()
    r = requests.get("https://www.baidu.com/",verify=False)
    r.encoding ='utf-8'
    bsObj = BeautifulSoup(r.text,"html.parser")
    for node in bsObj.findAll("a"):
        print("---**--- ", node.text)

# 使用numpy
def print_numpy():
    y = np.zeros((5,), dtype = np.int)
    print(y)

def Love():
    print('\n'.join([''.join([(''[(x-y) % len('wwb_nb')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0else' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))

之后在MainActivity中添加调用方法

void callPythonCodeFromLib(){
    
    
        Python py = Python.getInstance();
        py.getModule("callPyLib").callAttr("get_http");
        py.getModule("callPyLib").callAttr("print_numpy");
        py.getModule("callPyLib").callAttr("Love");
    }

在onCreate中调用方法
在这里插入图片描述
爬取网页还需要网络权限,在AndroidManifest.xml中添加网络权限

<uses-permission android:name="android.permission.INTERNET"/>

之后连手机,运行,在logcat中可以看到打印结果
(android studio模拟器联网的话还需要模拟器设置一下,这个自己去百度吧)

打印数组:
在这里插入图片描述

打印网站爬取:
在这里插入图片描述

打印❤ 哈哈哈哈
在这里插入图片描述
整个项目:https://download.csdn.net/download/wwb1990/12120537

以上~

猜你喜欢

转载自blog.csdn.net/wwb1990/article/details/104053465