環境
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のみでの簡単なアプリケーションの作成では機能したので問題ないかと思われます。
Javascript
1//main.js 2// Electron側の初期設定 3const electron = require('electron'); 4const app = electron.app; 5const BrowserWindow = electron.BrowserWindow; 6let mainWindow; 7 8// アプリを閉じた時にquit 9app.on('window-all-closed', function() { 10 app.quit(); 11}); 12 13// アプリ起動後の処理 14app.on('ready', function() { 15 var subpy = require('child_process').spawn('python',['./hello.py']); 16 var rq = require('request-promise'); 17 var mainAddr = 'http://localhost:5000'; 18 19 var openWindow = function() { 20 mainWindow = new BrowserWindow({width: 400, height: 300 }); 21 mainWindow.loadURL(mainAddr); 22 23 // 終了処理 24 mainWindow.on('closed', function() { 25 mainWindow = null; 26 subpy.kill('SIGINT'); 27 }); 28 }; 29 30 var startUp = function() { 31 rq(mainAddr) 32 .then(function(htmlString) { 33 console.log('server started'); 34 openWindow(); 35 }) 36 .catch(function(err) { 37 startUp(); 38 }); 39 }; 40 41 startUp(); 42}); 43
Python
1#hello.py 2#!/usr/bin/env python 3# -*- coding: utf-8 -*- 4 5from __future__ import print_function 6import time 7from flask import Flask 8 9app = Flask(__name__) 10 11@app.route("/") 12 13def hello(): 14 return "Hello World!<br>This is powered by Python backend." 15 16if __name__ == "__main__": 17 print('on hello') 18 app.run(host="127.0.0.1", port=5000) 19
ページ内に記載のあるコマンドを少し変えました。下記に記します。
Terminal
1$ npm install request -g 2$ npm install request-promise -g 3
このようなトラブルの解決方法を知っている方がいましたらおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。