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

本文主要是介绍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+beel.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+beel._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函数来实现需求”的操作。

如有侵权请联系我删除。

这篇关于JS编写应用并调用Python。OS: Can‘t find Google Chrome installation报错解决。调用eel库时使用Edge浏览器及解决网页object Promise问题。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397777

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面