我正在尝试制作一个基于 Python 的跨平台桌面应用程序。
我一直在寻找 Python GUI 框架,例如 PyQT、wxPython、tkinter 和 kivy。然而,除了 PyQT 之外,它们都不能为桌面 GUI 提供良好的外观和感觉,但 PyQT 的商业用途非常广泛,我不想公开我的源代码。除此之外,使 python GUI 可安装似乎非常困难,以至于我多次无法制作可安装的程序。所以我现在正在寻找其他的东西,那就是 Electron。
我发现 Electron 的 NodeJS 可以使用 python-shell 运行 python 应用程序。另外,Electron 用得很好,有很多名牌,所以我认为它可以是一个不错的选择。
我担心的是,以这种方式开发跨平台桌面应用程序是一种好方法吗?虽然我熟悉 Html、CSS 和一些 JS,但我不熟悉 NodeJS。但由于这是一种解决方法,我担心这可能会产生大量开销或造成糟糕的用户体验。
我的 python 应用程序包含相当多的数学任务。不是超重,但使用许多回归仍然有点重。还使用 SQLite 作为内部数据库。
当然,最好的解决方案可能是使用 NodeJs 而不是在 NodeJs 中运行 Python,但是关于在 NodeJS 中再次开发所有东西的时间,我认为这可能更实用。如果这种方法显着减慢了程序的速度,也许我必须找到另一种方法。
所以总结一下,
使用 Electron 和 Python 制作具有质量的跨平台商业应用程序是个好主意吗?
它会显着影响应用程序的性能吗?
如果这是一个坏主意,是否有任何替代方案或建议?
我在 Google App Engine 上使用 puppeteer 和 Node.JS
每当我在应用程序引擎上运行 puppeteer 时,我都会遇到一条错误消息
导航失败,因为浏览器已断开连接!
这在本地环境中工作正常,所以我猜测这是应用程序引擎的问题。
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true,
args: ["--disable-setuid-sandbox", "--no-sandbox"],
});
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序引擎的 app.yaml 文件
runtime: nodejs12
env: standard
handlers:
- url: /.*
secure: always
script: auto
Run Code Online (Sandbox Code Playgroud)
- 编辑 -
当我添加--disable-dev-shm-usage参数时它有效,但它总是超时。这是我的代码。
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true,
args: [
"--disable-gpu",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-setuid-sandbox",
"--no-first-run",
"--no-zygote",
"--single-process",
],
});
const page = await browser.newPage();
try {
const url = "https://seekingalpha.com/market-news/1";
const pageOption …Run Code Online (Sandbox Code Playgroud) 我目前正在 linux 中使用 python 3.52 开发嵌入式多点触控 kivy 程序。Kivy 很好,但我发现 GUI 开发在某些方面非常困难,而且动画通常很滞后。
此外,我发现如果我在一个页面中放置许多小部件,程序会变得很慢。我的程序包含很多小部件,所以我也认为实现 webview 会有所帮助。
所以我正在寻找特定屏幕中的 html 和 css 视图以获得更好的外观和感觉(并且可能通过使用过渡来改进动画?)。
我找到了 Cefpython,但它说它只适用于 python 2.7 并说它不稳定。它似乎只是从互联网上获取 url,而不是从文件系统中获取 html 和 css。(如果我错了,请纠正我。)
实际上,我什至不需要作为浏览器的功能,我只需要 html 和 css 用于几个屏幕的 UI/UX 开发。
我的嵌入式系统并不总是支持互联网(意味着它应该在没有互联网的情况下工作)。所以我不能在里面放任何网址。再一次,我只是想用它们来做造型。有什么好的方法吗?或者没有我想要的东西?
或者有什么其他的推荐吗?