web-dev-qa-db-ja.com

python / gtk3アプリのWindowsバージョンを作成する方法はありますか?

私は最近、GTK 3を使用して、かなりの量のコーディングを行ってきました。その素晴らしい結果に満足していますが、WindowsまたはMacを実行している人とアプリを共有したいと思います。何らかの種類のWindowsインストーラーを作成する方法はありますか?前もって感謝します。

3
user86684

GTK3は難しいビットです...すぐにそれを説明します...

py2exe または pyinstaller のようなものを使用すれば、Pythonプロジェクトは実際に非常に簡単です。そこには市販のオプションもあります。しかし、それは私が彼らの名前を思い出すことができないほど長い時間でした。

いずれにせよ、必要なものをすべて焼き付けたPython環境全体になります。ユーザーが実行するだけです。

ツールキットに戻りましょう。 GTK3はWindowsにインストールできますが、繁栄したり成熟したクロスプラットフォームツールキットではありません。これについていくつかの質問があります StackOverflowで しかし、それらが提供するバインディングがわかりません。これらはおそらくPythonには適していませんが、間違っていることを望みます。要するに、クロスプラットフォームアプリケーションにGTK3を使用したくないでしょう。

それを過ぎて、あなたは代わりを探しているままです。 3つの一般的なオプション:

6
Oli

PyGobjectのgnomeライブページでwin32のビルド手順を追加しました https://wiki.gnome.org/PyGObject#Building_on_Win32_with_cx_freeze

3
gianmt

.debパッケージを作成できます。ここでは、通常インストールする.debパッケージと同じように、依存関係がある場合はそれらを指定できます。

パッケージの作成は、1つまたは2つのコマンドでここで教えることができるほど簡単ではないので、これについて何か読む必要があるので、これを読むことをお勧めします。

http://developer.ubuntu.com/packaging/html/

そのサイトからの基本情報:

パッケージを開始する

bzr-builddebには、テンプレートから新しいパッケージを作成するプラグインが含まれています。プラグインはdh_makeコマンドのラッパーです。 packages-devをインストールした場合は、すでにこれらが必要です。パッケージ名、バージョン番号、アップストリームtarballへのパスを指定してコマンドを実行します。

$ Sudo apt-get install dh-make
$ cd ..
$ bzr dh-make hello 2.7 hello-2.7.tar.gz

単一のバイナリに対してどのようなタイプのパッケージが要求されるか。これにより、コードがブランチにインポートされ、debian /パッケージングディレクトリが追加されます。内容をご覧ください。追加するファイルのほとんどは、特別なパッケージ(Emacsモジュールなど)にのみ必要なので、オプションのサンプルファイルを削除することから始めます。

$ cd hello/debian
$ rm *ex *EX

ここで、各ファイルをカスタマイズする必要があります。

Debian/changelogで、バージョン番号をUbuntuバージョン2.7-0ubuntu1(上流バージョン2.7、Debianバージョン0、Ubuntuバージョン1)に変更します。また、unstableなどを、現在の開発Ubuntuリリースに正確に変更します。

パッケージ構築作業の多くは、debhelperと呼ばれる一連のスクリプトによって行われます。 debhelperの正確な動作は、新しいメジャーバージョンによって変わります。compatファイルは、どのバージョンとして動作するかをdebhelperに指示します。通常は、これを最新バージョンの8に設定します。

コントロールには、パッケージのすべてのメタデータが含まれます。最初の段落では、ソースパッケージについて説明します。 2番目以降の段落では、ビルドするバイナリパッケージについて説明します。アプリケーションをBuild-Depends:にコンパイルするために必要なパッケージを追加する必要があります。こんにちは、少なくとも以下が含まれていることを確認してください:

Build-Depends:debhelper(> = 8.0.0)Description:フィールドにプログラムの説明を入力する必要もあります。

上流のソースのライセンスに従うためには、著作権を記入する必要があります。 hello/COPYINGファイルによると、これはGNU GPL 3以降です。

docsには、最終パッケージに含める必要があると思われるアップストリームドキュメントファイルが含まれています。

README.sourceとREADME.Debianは、パッケージに非標準機能が含まれている場合にのみ必要です。削除することはできません。

source/formatはそのままにしておくことができます。これはソースパッケージのバージョン形式を表し、3.0(キルト)でなければなりません。

ルールは最も複雑なファイルです。これは、コードをコンパイルしてバイナリパッケージに変換するMakefileです。幸いなことに、最近ではほとんどの作業がdebhelper 7によって自動的に行われるため、ユニバーサル%Makefileターゲットは、必要なすべてを実行するdhスクリプトを実行するだけです。

これらのファイルはすべて、debianディレクトリの記事の概要でさらに詳しく説明されています。

最後に、パッケージブランチにコードをコミットします。

$ bzr commit -m "Initial commit of Debian packaging."

パッケージの構築

次に、パッケージがパッケージを正常にコンパイルし、.debバイナリパッケージをビルドすることを確認する必要があります。

$ bzr builddeb -- -us -uc
$ cd ../../

bzr builddebは、現在の場所でパッケージをビルドするコマンドです。 -us -ucは、コンパイルにGPG署名する必要がないことを示します。結果は...に配置されます.

パッケージの内容は次の方法で表示できます。

$ lesspipe hello_2.7-0ubuntu1_AMD64.deb

パッケージをインストールして、動作することを確認します。

$ Sudo dpkg --install hello_2.7-0ubuntu1_AMD64.deb

次のステップ

.debバイナリパッケージをビルドしても、パッケージにバグがある場合があります。ソースの.dscメタデータファイルと.debバイナリパッケージの両方で実行できるツールlintianによって、多くのエラーを自動的に検出できます。

$ lintian hello_2.7-0ubuntu1.dsc
$ lintian hello_2.7-0ubuntu1_AMD64.deb

報告する各問題の説明は、lintianのWebサイトで見つけることができます。

パッケージを修正したら、-nc "no clean"を使用して再構築できます。最初からビルドする必要はありません。

$ bzr builddeb -- -nc

パッケージがローカルでビルドされることを確認したら、pbuilderを使用してクリーンなシステムでビルドすることを確認する必要があります。 pbuilder-distをまだ設定していない場合は、今すぐ設定してください:

$ bzr builddeb -S
$ cd ../build-area
$ pbuilder-dist precise build hello_2.7-0ubuntu1.dsc

パッケージに満足したら、他の人にレビューしてもらいたいでしょう。レビューのためにブランチをLaunchpadにアップロードできます。

$ bzr Push lp:~<lp-username>/+junk/hello-package

PPA(Personal Package Archive)にアップロードすると、ビルドが確実になり、バイナリパッケージをテストする簡単な方法が提供されます。 LaunchadでPPAをセットアップし、dputでアップロードする必要があります。

$ dput ppa:<lp-username> hello_2.7-0ubuntu1.changes
0
LnxSlck

ツールがあります py2exe pythonプログラムをスタンドアロンのWindows実行可能ファイル(pythonインタープリターを含む)に変換します。あなたが探しているものです。

この page では、このツールを使用したGtkアプリケーションのパッケージ化について具体的に言及しています。

私は怖いのですが、OS Xで助けにはなりません。

0
chronitis