GUIに部分をwxpythonを使って作ろうとしていたのですが
質問自体は「wxpython」を検討したが諦めたとのことですので、
直接関係ありませんが一応併用の道を模索してみます。
https://ja.wikipedia.org/wiki/WxPython
ざっと調べた所、これはJavaのSwingと同じようにネイティブ言語のアプリを生成するものです。
JavaScriptが出来るのはHTMLを動的に弄ることだけです。
Chrome等のブラウザにHTMLとCSSを全部投げ渡して、
JavaScriptはHTMLを改変してChrome越しに画面表示結果を変更するようお願いするという役割になります。
Electronの実体はChromiumというChromeの裏で動作しているコアモジュールがベースになっており、
要するに単なるブラウザにHTMLとCSSとJavaScriptをねじ込んで動作させるだけです。
こういった事情からwxpythonをメインにJSに補助させるという手段は取れません。
(※昔はChromeのコアモジュールはChromiumでしたが今は独自のライブラリにかわりました)
PythonとJavaScriptで処理をわけて動かすことは可能なのか
可能か不可能かだけで言えば可能です。
Pythonでデスクトップアプリを作る with Electron - Qiita
を見る限り、凝ったことは不可能です。
JavaScript
1var subpy = require('child_process').spawn('python', ['./hello.py']);
これってターミナル立ち上げてpython hello.py
コマンド打ち込んで標準出力を画面に表示してるだけじゃん。
まぁこれでも連携出来ているといえるかもしれません。
ただし、この環境をNode.jsやPythonをインストールしていないマシンに持って行った時に不具合が起こります。
Electronはアプリケーションを吐き出す時、
Node.jsのインストールされてない環境で動作する為に必要なファイルを内包していますが、
Pythonはターミナルを立ち上げてコマンドを打ち込む程度の事しかやってないので含まれてはいません。
もしこれが自分だけで使うなら別にElectronで実装すれば良いですが、
他の環境に配布する場合はいくつか選択肢があります。
上から実現しやすい順に選択肢を挙げていきます。
- 実行する全ての端末にPythonと必要ライブラリをインストールさせる
- Python風の言語を使って実行権限を付与すれば動くアプリを生成し、環境毎にElectronのライブラリに差し込んで配布
- Emscriptenを利用してPythonからJavaScriptに変換する
1は誰でも思いつくレベルで楽勝。
Pythonは2系と3系がありますので、その辺考慮してどの端末でも動かすとなると結構エグいかもしれませんね。
2番はPython風にした時点でPythonじゃないんで、ライブラリを期待しているならアウトですね。
構文だけならNimとか?
まぁ、日本語の記事が殆ど無いので自分で勝手に調べてゴリゴリ書けるプログラミング上級者でないと厳しそうです。
色々調べてみて下さい。
最後のEmscriptenは忘れたほうが良いかもしれない選択肢です。
EmscriptenはCやC++のアプリをJavaScriptで動作させる為のツールです。
C言語のソースコードを一度LLVMというJVMみたいなバイトコードに溶かして、JavaScriptに固め直す事で実現しています。
その性質上、JavaScriptからLLVMの関数を実行するには特殊なメソッドを使って通信する必要があり、覚えるのが非常に大変で簡単な処理を実装するだけで私も数週間かけました。
PythonでLLVM IRを出力してみた - Qiita
この記事があるように、PythonからLLVMに変換する事自体は可能なようです。
そこからEmscriptenでJavaScriptに固め直して通信するコードを書く…無理ゲーです。
一撃で解決できる記事も多分ありませんので、
何ヶ月か単位で研究しながらトライ・アンド・エラーを繰り返すことになるかと思います。