JS编写应用并调用Python。OS: Can‘t find Google Chrome installation报错解决。调用eel库时使用Edge浏览器及解决网页object Promise问题。

目录

问题重述

问题一

问题二

问题一的解决

与问题一相关的:Edge浏览器的环境变量设置

问题二的解决

运行结果

结语


问题重述

今天需要用JavaScript编写一个应用,其中部分功能需要调用Python函数。一番搜索之后,发现可以使用Python eel库,详细请参考js调用Python函数。于是,我马上安装eel库,版本号为0.16.0。但是,在实现的过程中遇到了一些问题并解决,如下:

问题一

0.16.0版本的eel库的默认使用的浏览器为chrome,而我只使用Edge浏览器。于是。当我调用eel库时,遇到了OSError: Can't find Google Chrome/Chromium installation报错,那么,如何把eel库使用的浏览器改为Edge呢?

问题二

在解决问题一之后,我的Python程序终于不报错了。但是,JavaScript使用eel调用Python函数后,在网页中显示的是[object Promise],又该如何解决?

问题一的解决

根据参考文章,我首先尝试简单试验,代码如下:

import eel

@eel.expose
def my_add(a, b):
    return a+b

eel.init(r'C:')    #给出包含web文件的文件夹
eel.start('b.html')   #开始进入循环,自动启动你的主页

运行中,在eel.start一行给出报错:OSError: Can't find Google Chrome/Chromium installation


于是,我查看了eel库的源码,联系下面这三个文件,逐渐明白其中的原因,

__init__.py
browsers.py
edge.py

原理是把'mode'关键字的值修改为'edge'即可,修改之后的代码如下:

import eel

@eel.expose
def my_add(a, b):
    return a+b

eel._start_args['mode']='edge'
eel.init(r'C:')    #给出包含web文件的文件夹
eel.start('b.html')   #开始进入循环,自动启动你的主页

与问题一相关的:Edge浏览器的环境变量设置

注意,如果你真的是Edge浏览器的使用者,
还需要把Edge浏览器的程序文件“msedge.exe”所在的路径添加到环境变量。

问题二的解决

根据参考文章,我编写了简单的html文件进行试验。理想的试验结果为,在网页中显示两数之和,即显示一个数字,但是显示的结果却是[object Promise]。

对于这个问题,向C知道提问“JavaScript如何解决返回[object Promise]”,它的回答如下:

 于是,我在代码中增加了.then(),修改之后,完整的HTML代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="/eel.js"></script>
</head>
<body>
	JavaScript调用Python函数,运行结果如下:
	<p id="demo"></p>
	<script>
		async function test() {
			const res = await eel.my_add(10, 15)().then();
			document.getElementById("demo").innerHTML = res;
		}

		test();
	</script>
</body>
</html>

运行结果

运行成功,截图如下:

结语

实现了“使用前端语言JavaScript调用Python函数来实现需求”的操作。

如有侵权请联系我删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值