1环境:
========
1.1 Python3.8、谷歌浏览器、Microsoftvscode编辑器。
1.2 Eel库介绍、安装、相关地址、官方文档解读、文件结构、简单使用及注意事项。
1.3亲测,目的易懂。
2介绍:
========
2.1 Eel是一个轻量级的python桌面GUI开发第三方库。
2.2 Eel实际上可以启动本地web服务器,将python的函数暴露给JAVAscript,所以在网页侧也可以调用python函数。
2.3使用html/JS作为接口开发语言,但可以访问所有的python功能,与electron相似,但比其更轻。
2.4 Eel重量很轻,只是启动了chrome App,所以需要安装chrome浏览器。 (也就是说,预先安装谷歌浏览器)。
3安装:
========
pip install eel
#本机设置
# pip 3.8安装eel #卡太多
#采用如下,神速
# pip 3.8 install-I https://mirrors.a liyun.com/pypi/simple eel
4传送门:
=========
3359 github.com/samuelhwilliams/eel
https://pypi.org/project/Eel/
5文件结构和简单的晕圈介绍
=============================)
5.1文件结构:
web文件夹必须与执行代码位于同一目录中; main.html位于web文件夹下。
5.2代码: hello1.py
导入eel
El.init(web ) ) )。
El.start(main.html ) )。
5.3 main.html代码:
你好,世界! //Expose this function to Python
El.Expose(Say_Hello_js );
Functionsay_Hello_js(x ) {
console.log(Hellofrom ) x;
}
say_Hello_js(JavaScriptworld! ' );
//Call a Python function
El.say _ hello _ py (JavaScript world! ' );
你好,世界!
5.4执行:
5.5高级别可选参数设置: hello2.py代码
导入eel
El.init(web ) ) )。
#添加可选参数
web_app_options={
#指定浏览器,默认为谷歌浏览器
' mode': 'chrome-app ',#or “chrome”
#指定端口。 默认设置也是此端口
“端口”: 8080,
#kiosk是chrome的全屏参数
' chrome flags ' : [ 'kiosk ' ]
}
#新版需要添加suppress_error=True。 请不要报告错误
#EEL.start(main.html ),options=web_app_options,suppress_error=True ) ) ) ) ) ) )。
El.start(main.html ) )。
#EEL.start('main.html ',size=(20,20 ) )指定窗口大小。 同样的感觉,我觉得不能太小
6新案例:
=========
6.1参考资料来源,并据此修改。
3359 blog.csdn.net/lpw mm/article/details/102965286? UTM _ medium=distribute.PC _ relevant.none-task-blog-blogcommendfrommachinelearnpai2-2. nonecasedepth _1- 1
6.2文件结构:
main.py主入口
( web静态文件
main.html
6.3主. py代码:
导入eel
定义html文件所在的文件夹的名称
El.init(web ) ) )。
@eel.expose #使用与flask路由定义相似的装饰器
defpy_fun(a ) :
content='你好!' A
返回(content )
必须测试调用#js中的函数并使用回调函数
js_return=EEL.js_fun(python传递的参数() (lambda x: print(x ) x ) ) )
#启动的函数调用放在最后,port=0表示使用随机端口,size=(宽度、高度) ) ) ) ) ) ) ) ) ) )的函数调用) ) ) ) ) ) 660 )
El.start('main.html ',port=0,size=) ) 600,300 )
6.4 main.html代码
El演示js py互调测试调用Python函数
调用python的函数。 注意,必须在定义之前附加async来声明异步
异步函数
varpar=$('#in ' ).val );
letcontent=awaitEEL.py_fun(par ) ); //这里在let中不使用var,在被调用的python函数的后面有两对括号
$('#out ' ).text(content );
}
//将js的函数暴露在python中。 这个好像不太需要用
El.Expose(js_fun;
functionjs_fun(a ) (
return ('这是调用js的函数返回的结果。' a );
}
图6.4
基本介绍到此,自己整理、共享,和喜欢的收藏转发。