質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

5104閲覧

Electronを使用してPythonでGUIアプリケーションの開発でアプリケーションが起動しない

RarigoB

総合スコア26

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/02/22 13:55

編集2018/02/25 06:45

環境
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

 このようなトラブルの解決方法を知っている方がいましたらおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1var subpy = require('child_process').spawn('python',['./hello.py']);

はターミナルでpython ./hello.pyをした時と同じ意味になります。
つまり普通にターミナルでpython -Vをしてバージョン番号が表示されないならPythonがインストールされていないかパスが通ってません。
なので、

  • Pythonのパスを通す
  • PythonにFlaskをインストールする

この2つを確認してみてはどうでしょうか。
パスの通し方はググればたくさん出てきます。

また、electronコマンドはプロジェクトディレクトリでelectron .です。
.がカレントディレクトリを表すので忘れると起動できません。

投稿2018/04/05 04:18

kurosuke___

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問