Pythonとelectronを使用したGUIアプリケーションの作成について
環境
ubuntu16.04 LTS
python 2.712 , python 3.5.2
electron 1.8.2
Pythonを用いたGUIアプリの開発をしてみたいなと思い、Electronを使用した開発を試みるべく、以下のページを参考にしました。
https://qiita.com/yoshizaki_kkgk/items/da9711c26e71522ad289
上記のページのコードをそのままコピーペーストし、ページ内に記載のあるモジュールのインストールもしたのですが、electronのコマンドを実行しても、Terminalでもエラーメッセージ等表示されず、electronも起動しませんでした。
main.js自体がうまく働いてないのか、Pythonのプログラム自体が働いてないのかわかりません。
しかし、main.js内のコンソールへの文字の出力が行われてないので、main.js自体に問題があるのかもしれないのですが、完全にコピーペーストなので考えづらく、まったく解決方法が思いつかない状態です。
electron自体はJavaScriptのみでの簡単なアプリケーションの作成では機能したので問題ないかと思われます。
//main.js
// Electron側の初期設定
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
let mainWindow;
// アプリを閉じた時にquit
app.on('window-all-closed', function() {
app.quit();
});
// アプリ起動後の処理
app.on('ready', function() {
var subpy = require('child_process').spawn('python',['./hello.py']);
var rq = require('request-promise');
var mainAddr = 'http://localhost:5000';
var openWindow = function() {
mainWindow = new BrowserWindow({width: 400, height: 300 });
mainWindow.loadURL(mainAddr);
// 終了処理
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) {
startUp();
});
};
startUp();
});
#hello.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import time
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!<br>This is powered by Python backend."
if __name__ == "__main__":
print('on hello')
app.run(host="127.0.0.1", port=5000)
ページ内に記載のあるコマンドを少し変えました。下記に記します。
$ npm install request -g
$ npm install request-promise -g
package.json
{
"name": "PythonApp",
"version": "0.1.0",
"main": "main.js",
"dependencies": {
"request-promise": "*",
"electron-prebuilt": "*"
}
}
このようなトラブルの解決方法を知っている方がいましたらおねがいします。