好久没更,又想折腾,拿到我妈的nova 12升个鸿蒙next试试能不能玩python。
实验环境:
- nova12 Ultra星耀版一台,系统为Harmony OS 5.0.1
- 任意一台有wifi的手机
- 可以联网的路由器wifi
准备工作
1. 安装python编译器
打开 “卓易通”,搜索python编译器,
2. 打开python编译器
3. 获取当前python工作路径
输入以下代码捞出python脚本工作路径
import os
print(os.getcwd())
可以看到路径是:
/data/data/coding.yu.pythoncompiler.new/files/home
4. 找python二进制路径
输入以下代码,看看脚本工作路径的父级路径,看到有个PYROOT3,大胆推测python二进制文件就在里面
import subprocess
sc_path = '/data/data/coding.yu.pythoncompiler.new/files/home'
def run(str_in):
p = subprocess.Popen(str_in, shell=True, stdout=subprocess.PIPE)
out, err = p.communicate()
print(str(out, 'utf-8'))
if err:
print(str(err, 'utf-8'))
def ll(str_in):
run("ls -la " + str_in)
# 捞父级路径
ll(sc_path + '/../')
在追加一行代码看看 '/data/data/coding.yu.pythoncompiler.new/files/PYROOT3' 下面有什么。
ll(sc_path + '/../PYROOT3')
有个bin,毫无疑问,python二进制在里面
ll(sc_path + '/../PYROOT3/bin')
得到python二进制文件路径是:
/data/data/coding.yu.pythoncompiler.new/files/PYROOT3/bin/python3
5. 封装python和pip,查看pip版本
import subprocess
py3 = '/data/data/coding.yu.pythoncompiler.new/files/PYROOT3/bin/python3'
def run(str_in):
p = subprocess.Popen(str_in, shell=True, stdout=subprocess.PIPE)
out, err = p.communicate()
print(str(out, 'utf-8'))
if err:
print(str(err, 'utf-8'))
def ll(str_in):
run("ls -la " + str_in)
# 运行python脚本
def python(str_in):
run(py3 + " " + str_in)
# 可以执行pip命令
def pip(str_in):
run(py3 + " -m " + str_in)
# 安装包
def pip_install(str_in):
pip("pip install " + str_in)
# 看看pip版本
pip('pip --version')
可以看到python是3.13版本,还是比较新的
6. 换成清华源
上面的代码追加以下内容,换成清华源(不换源下载慢死),并安装flask,由于我已经装过了,显示不一样
# 换源
pip("pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple")
# 安装flask
pip_install("flask")
运行flask
1. 获取服务端地址
两部手机都连接同一个wifi,然后鸿蒙next手机进wifi设置查看信息,记录下ip地址,作为服务端IP,可见服务端IP为:192.168.3.3
2. 启动flask
输入以下代码,host字段填写刚刚的服务端ip,port字段填写5001,表示开启web服务,监听5001端口
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return '欢迎访问鸿蒙next的服务端页面'
if __name__ == '__main__':
app.run(host='192.168.3.3',port=5001)
可以看到flask已经正常启动。如果运行报错了,要看看是不是host填错了ip,实在不行就host改成'0,0,0,0'
,表示全0监听。
注意不要灭屏或跳后台,否则python会被停止。
3. 连接服务端
拿出另外一台手机,打开浏览器,输入地址并访问:192.168.3.3:5001
,可以看到已经连接上服务端(鸿蒙next手机),并显示出页面。
客户端:
服务端:
好,大功告成!