2012-10-01 13 views
7

私の質問は、プラットフォーム(Mac/Linux/Windows)間でGUIアプリケーションを配布することの容易さについての質問です。 。Python GUI App Distribution:wxPython、TKinter、QTで書かれています

私が現在理解しているところは、ユーザがPythonをインストールしている限り、自分のアプリケーションをそのボックスで実行する準備が整っているためです(インストールするにはTkinterアプリケーションが最も簡単です)。

wxPythonまたはpyQTで書かれたGUIアプリケーションの場合、追加のステップであるwxWidgetまたはQTを最初にインストールしてから、GUIアプリケーションをインストールする必要があります。 (しかし、私のUbuntuのボックスにはwxWidgetライブラリとQTライブラリがデフォルトでインストールされているようだが、標準であるかUbuntuのディストリビューションはユーザにとってより親しみやすいのだろうか?WindowsとMacはおそらくそれらをdefualt追加のステップとしてダウンロードしてインストールする)

+2

TkinterにはPythonがあるという理由だけで利用できるという保証はありません。これは拡張モジュールなので、別のパッケージに分割することができます。 Mandriva Linuxディストリビューションはこれを行い、他にもおそらく存在します。 – ekhumoro

答えて

8

Kubuntuを実行している場合、PyQtはデフォルトでインストールされます。ほとんどのLinuxディストリビューションにはデフォルトでPyGtkまたはPyQtのいずれかがインストールされます。 WxPythonはあなたのシステム内の他のパッケージの依存関係としてあなたのUbuntuボックスにインストールされた可能性が最も高いです。

ターゲット市場がLinuxの場合は、debまたはrpmパッケージを作成するだけで、アプリケーションの依存関係を処理できます。 WindowsとMacの場合

(とあなたがその気ならでも、Linuxなど)、あなたのアプリケーションでPythonインタプリタをバンドル可能性があり、それは、そのような .exeファイルとして、あるいはcx_freezepy2exeのようなライブラリを使用しては.elfネイティブ実行可能な形式に変換するライブラリですおよびpy2app。これが完了したら、ユーザーはpythonまたはあなたのライブラリをインストールする必要はありません。

+6

[PyInstaller](http://www.pyinstaller.org/)はマルチプラットフォームで、PyQt、wxPythonなどの多くのサードパーティのライブラリをサポートしています – jfs

+0

PyInstallerも素晴らしいです。 – prabu

4

Tkinterは、Pythonに含まれている唯一のものです。 wxPythonとpyQTには、wxWindowsまたはQTライブラリが、システムにインストールされるwxPythonまたはpyQTライブラリが必要です。

しかし、Tkはあまりうまく見えません。ユーザーが既にPythonをインストールするようにしている場合は、ライブラリをインストールすることもできます。 (またはインストーラなどを含むかもしれません)

+0

私はTkの外観に関するコメントはここではないと思います。問題は、どのツールキットを選択するのかということではなく、展開オプションが何であるかということです。さらに、Tkの見た目は非常に主観的なので、IMOという答えから逸脱しています。 –

+3

さらに、Tkinterの新しいttkサブライブラリ(Python 2.7+またはhttp://pypi.pythonで利用可能)。org/pypi/pyttk)を使用すると、Tkinterアプリケーションをかなり見栄えよくすることができます。 –

2

アプリがクロスプラットフォームになる場合は、WxWidgetswxpython)をお勧めします。私はそれを数回使ってきましたが、それは一度も問題にはなりませんでした。

それにもかかわらず、Windows、Mac、Linux用に異なるインストーラを作成する必要があります。 Linuxでは、依存関係を処理するために.debまたは.rpmを使用してください。

私はいつもpy2exeを使用してexeファイルを作成しました。 Py2exeは、Pythonインタプリタと必要なライブラリ(この場合はwxWidgets)を添付して動作します。詳細については、

チェックこのリンクを:http://www.py2exe.org/

+1

私はwxWidgetsの選択についてのコメントはここから外れていると思います。問題は、どのツールキットが最良かということではなく、展開オプションに関するものです。質問が "X"を選ぶことではないときに "私はXを選ぶ"と言って、誰かがwxPythonを好き嫌いにしているので、単に投票権を獲得し、投票を下すことができます。私は、あなたが展開の話題にこだわっていれば、その質問はより良いと思います。しかし、特にwxPythonのデプロイが容易であるとしている場合を除き、その理由を説明する必要があります。 –

関連する問題