我正在尝试使用Web技术(HTML5,CSS和JS)编写跨平台的桌面应用程序。我看了一些框架,并决定使用Electron框架。
我已经用Python完成了该应用程序,所以我想知道是否有可能在Electron框架上使用Python编写跨平台的桌面应用程序?
可以与Electron一起使用,但是如果您正在寻找“ webbish” UI功能,则可以检查Flexx-它允许您使用纯Python进行编码,但仍使用Web开发工具的样式和UI灵活性。
如果你坚持在电子要去你应该遵循这个的想法后。
首先,请确保已安装所有内容:
pip install Flask
npm install electron-prebuilt -
npm install request-promise -g
现在,创建您希望所有魔术发生的目录,并包含以下文件
创建您的hello.py:
from __future__ import print_function
import time
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World! This is powered by Python backend."
if __name__ == "__main__":
print('oh hello')
#time.sleep(5)
app.run(host='127.0.0.1', port=5000)
创建您的基本package.json:
{
"name" : "your-app",
"version" : "0.1.0",
"main" : "main.js",
"dependencies": {
"request-promise": "*",
"electron-prebuilt": "*"
}
}
最后创建您的main.js:
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
electron.crashReporter.start();
var mainWindow = null;
app.on('window-all-closed', function() {
//if (process.platform != 'darwin') {
app.quit();
//}
});
app.on('ready', function() {
// call python?
var subpy = require('child_process').spawn('python', ['./hello.py']);
//var subpy = require('child_process').spawn('./dist/hello.exe');
var rq = require('request-promise');
var mainAddr = 'http://localhost:5000';
var openWindow = function(){
mainWindow = new BrowserWindow({width: 800, height: 600});
// mainWindow.loadURL('file://' + __dirname + '/index.html');
mainWindow.loadURL('http://localhost:5000');
mainWindow.webContents.openDevTools();
mainWindow.on('closed', function() {
mainWindow = null;
subpy.kill('SIGINT');
});
};
var startUp = function(){
rq(mainAddr)
.then(function(htmlString){
console.log('server started!');
openWindow();
})
.catch(function(err){
//console.log('waiting for the server start...');
startUp();
});
};
// fire!
startUp();
});
摘自帖子本身-以下注意事项
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。