Pythonアプリケーション用のブラウザベースのGUI [終了]


8

コマンドラインのpythonアプリケーション用のウェブ/ブラウザベースのGUIを作成したいと考えています。目標は、このGUIを作成するためにHTML / JSテクノロジーを利用することです。アプリケーション自体として、LinuxとWindowsで実行する必要があり、インターフェースはlocalhostからのみアクセスできます(インターネットに公開されません)。GUIには5〜10ページが含まれます。

HTML / JSを含む従来のデスクトップGUIは必要ありませんが、一連のHTMLファイルと、それらとアプリケーションの間にある種のコントローラーが必要です。

また、ページ全体を更新せずに、GUIでデータを読み込んで印刷できるように、非同期プログラミング(ajaxのような)を利用したいと思っています。私はおそらくそのためにjQueryを使用しますが、他にもいくつかあります。

これをどのように設計することをお勧めしますか?ここではパフォーマンスは重要ではありません。私はむしろ、信頼性、移植性、シンプルさを考えています。

私は軽量のPython HTTPサーバー/フレームワーク(CherryPyなど)を使用することを考えています。後でPythonテンプレートシステムを使用することもできます(最初は数ページになります)。

編集:
私はこれを構築するためのアイデア/推奨事項を探していますが、ブラウザ/ウェブベースのGUIに代わるものではありません。


2
ローカルでのみ実行する場合は、全体を単純化し、PythonでGUIを記述します。
GrandmasterB 2013年

3
デスクトップのGUIを作成するという考えに怯えないでください。デスクトップGUIは、HTMLベースのインターフェイスよりもはるかに簡単に作成できます。
GrandmasterB 2013年

4
私はそれらが強力な利点を持っていることに同意しますが、これは私が達成したいものではありません。そして、あなたが言うように、あなたはそれらを作り出すのがより簡単であるわかります、しかしそれは私の場合ではありません。最後に、Python GUIフレームワークにはないものを提供するJavaScriptライブラリを使用しています。
ack__ 2013年

2
あなたの研究を共有することは皆を助けます。何を試したか、なぜそれがニーズを満たさなかったかを教えてください。これは、時間をかけて自分自身を助けようとしたことを示しており、明白な答えを繰り返すことから私たちを救い、そして何よりも、それはあなたがより具体的で適切な答えを得るのに役立ちます。質問方法
gnat

2
繰り返しますが、威圧されることはありません。過去にGtk、nCurses、WinForms、.Netを使用して多くのデスクトップGUIを開発し、radasmを使用してx86アセンブラでGUIを作成しました。ここで私のニーズに合わないだけです。
ack__ 2013年

回答:


5

私は現在、ほとんど同じことをしようとしています。Pythonにはサーバー(SimpleHTTPServer)があるように見えるので、Pythonサーバーと対話するAngularJS Webアプリケーションを作成しようとしています。

潜在的に、スタンドアロンアプリケーションとしてPythonアプリケーションを配布できるcefpythonプロジェクトが存在します。


私はここでSimpleHTTPServerについて否定的なコメントを見ました。別のサーバーを探すことをお勧めします(たぶんCherryPyに行きますが、他にもたくさんあります)。CEFPythonを試しましたか?最新のChromium機能が提供されていないようですが、間違っている可能性があります。実際のブラウザを使用すると、実際のサポート、メンテナンス、および積極的な開発が保証されます。
ack__ 2013年

@ack__現在、SimpleHTTPServerで遊んでいます-必要なのがシングルセッションサーバーだけであれば問題はないと思います。ユーザーのシステムに簡単にインストールできるように、デフォルトライブラリのスタッフのみを使用して作成しようとしています。まだcefpythonが必要な時点には達していませんが、必要に応じてCEFを更新できるはずです。
Eugene

では、どのCEFバージョンを使用しましたか?マルチプロセスの部分については心配していません。むしろ、Webkit APIとChromium-content APIの違いがあるとすれば違います。
ack__ 2013年

あなたは彼らのサイトからバイナリをつかむことができます。アプリケーションのシードに使用できるCEFClientアプリがあります。CEFベースの製品もいくつか見ましたが、それらはnode.jsを使用しています-github.com/adobe/brackets-shellおよびgithub.com/rogerwang/node-webkit。ブラケットシェルは、node-webkit(前回チェックしたとき)がそのプロセスを実行している間に、別のプロセスでノードを実行します。nodeをPythonアプリに置き換えるのはどれほど難しいでしょうか。
ユージーン

3

あなたが述べた基準は:

  • 信頼性
  • 携帯性
  • シンプル

その場合は、デスクトップアプリが適しています。Webサーバーを混在させる必要はありません。それは実際の利益のために問題を複雑にするだけです。

OPの編集(HTMLベースのインターフェースが望ましい)に基づいて、可能なルートはnode-webkitである可能性があります。これにより、HTML、Javascriptを使用してWindows、Linux、Macで動作するデスクトップアプリケーションを作成できます。これは、PhoneGapと多少似たアプローチをとります(ただし、同じ埋め込みブラウザーがすべてのプラットフォームで使用されることを除いて)。ノードは、多数のライブラリへのアクセスを提供するJavascriptを強化するために使用されます。また、基盤となるシステムにアクセスできるため、Pythonベースのコマンドラインプログラムを実行できます。


2
私はそれらが簡単なだけで、簡単ではないと主張します。彼はpytkに慣れていないので、信頼性は高くありません。彼はコマンドラインについて何も言わなかった。ローカルサーバーについては、移植性に欠けるものはありません。ここでも、たとえば彼が独自のコントロールを作成している場合、アプリケーションGUIで開発するのははるかに困難になります。
BeardedO 2013年

HTMLでUIを実行することで多くのメリットが得られます。そのため、Steam、SpotifyなどがChromium Embedded Frameworkをサポートしています。Adobe Bracketsは興味深い例の1つです。node.jsがCEF UIプロセスとは別のプロセスとして実行されています。
ユージーン

はい、主な利点は柔軟性です。たとえば、新しいコントロール、リアクティブレイアウト、動的ページレイアウトの開発に対する抵抗がはるかに少なくなります。
BeardedO 2013年

3
明確にするために-HTMLでUIを実行することにより、フォントレンダリング、GPU高速化トランジションなどの大幅に最適化されたサポートを備えたクロスプラットフォームの最新のUIが得られます。十分に管理されたライブラリやフレームワーク、ツールなどが多数あります。たとえば、JavaでUIを実行するときに直面するイライラする問題の1つは、Retina Macのサポートです。ブラウザで実行している場合は、そのような問題はありません。
Eugene

1
GrandmasterB私はあなたがブラウザがすることをすることができないと言っていません。あなたはできる。しかし、ブラウザにはすでに実装されており、大幅に最適化されています(そこでは競争が激化しています)。
Eugene

2

Python Webアプリのオプション:

  • ジャンゴ
  • web.py
  • werkzeug(w / o w / oフラスコ)
  • ねじれた
  • cherry.py
  • 生のwsgi
  • 生のsimplehttpserver

これらのどれでも機能します。アプリの構築方法に関する限り。これらのフレームワークのほとんどには、オンラインチュートリアルがあります。ただ従うだけで、ニーズに合わせて調整してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.