25

gtk GUI を cli プログラムに追加するための簡単なプログラムを Python で作成しました。distutils を使用してインストーラーを作成する方法を考えていました。これは単なるコマンド ライン アプリの GUI フロントエンドであるため、とにかく *nix でのみ動作するため、クロス プラットフォームであることは心配していません。

私の主な目標は、debian/ubuntu ユーザー向けの .deb パッケージを作成することですが、make/configure ファイルがわかりません。私は今まで主に Web 開発者でした。

edit : distutils を使っているプロジェクトを知っている人はいますか?

ここにいくつかの便利なリンクがあります

  • Ubuntu Python パッケージ ガイド

    このガイドは非常に役に立ちます。グーリングの最初の波の間に、どうしてそれを逃したのかわかりません。さらに、既存の Python アプリケーションをパッケージ化する方法についても説明します

  • Ubuntu MOTU プロジェクト

    これは、ubuntu の公式パッケージ メンテナンス プロジェクトです。どなたでも参加できます。また、上記の「python パッケージング ガイド」を含む、あらゆる種類のパッケージの作成に関する多くのチュートリアルと情報があります。

  • 「Python distutils から deb へ?」- Ars Technica フォーラムのディスカッション

    この会話によると、distutils だけを使用することはできません。Debian パッケージ形式 (またはそのようなもの) には従いません。Ubuntu Packaging guide に見られるように、それが dh_make が必要な理由だと思います

  • "distutils の bdist_deb コマンド

    This oneには、zipファイルとシェルスクリプトを連結してある種のユニバーサル実行可能ファイル(pythonとbashを含むもの)を作成することについて、いくつかの興味深い議論があります(ubuntuガイドを見つけた方法でもあります)。変。聞いたことがないので、誰かがこの慣行についてもっと情報を見つけたら教えてください。

  • deb 形式の説明と distutils の適合方法 - python メーリング リスト

4

5 に答える 5

14

distutils の簡単な例を参照してください。実際のインストール スクリプトには通常、もう少し多くの情報が含まれていることを除けば、基本的にはこのようなものです。ただし、根本的により複雑なものは見たことがありません。本質的には、インストールする必要があるもののリストを提供するだけです。ソースとインストールされたツリーが同じではない可能性があるため、いくつかのマッピング dict を与える必要がある場合があります。

以下は、実際の (匿名化された) 例です。

#!/usr/bin/python 

from distutils.core import setup 

setup (name = 'Initech Package 3', 
          description = "Services and libraries ABC, DEF", 
          author = "That Guy, Initech Ltd", 
          author_email = "that.guy@initech.com", 
          version = '1.0.5', 
          package_dir = {'Package3' : 'site-packages/Package3'}, 
          packages = ['Package3', 'Package3.Queries'], 
          data_files = [ 
                       ('/etc/Package3', ['etc/Package3/ExternalResources.conf']) 
          ])
于 2008-08-27T05:12:47.643 に答える
6

apt-get install python-stdeb

Python から Debian へのソース パッケージ変換ユーティリティ

このパッケージは、新しい distutils コマンド sdist_dsc を介して Python パッケージから Debian パッケージを生成するためのいくつかのツールを提供します。Debian パッケージには自動デフォルトが提供されていますが、結果として得られるパッケージの多くの側面は、構成ファイルを介してカスタマイズできます。

  • pypi-install は、パッケージの Python Package Index (PyPI) を照会してダウンロードし、そこから .deb を作成してから、.deb をインストールします。
  • py2dsc は、distutils でビルドされたソース tarball を Debian ソース パッケージに変換します。
于 2011-01-17T19:00:23.223 に答える
2

次のチュートリアルが非常に役立つことがわかりました。これは distutils のドキュメントよりも短く、典型的なプロジェクトを段階的にセットアップする方法を説明しています。

于 2010-11-15T21:57:26.177 に答える
2

ほとんどの Python プログラムは distutils を使用します。Djangoは 1 つです。http://code.djangoproject.com/svn/django/trunk/setup.pyを参照してください。

非常に包括的で、いくつかの良い例があるため、ドキュメントも読む必要があります。

于 2008-08-27T10:04:25.493 に答える
1

distutils は、慣れればそれほど難しいものではありません。いくつかのメタ情報 (プログラム名、作成者、バージョンなど) を入力してから、含めたいファイルを選択するだけです。たとえば、かなり複雑な python ライブラリのサンプル distutils setup.py モジュールを次に示します。

カマエリア setup.py

これはデータファイルなどを処理しないことに注意してください.YMMV.

別の注意として、distutils のドキュメントはおそらく python の最悪のドキュメントの一部であることに同意します。一部の領域では非常に包括的ですが、他の領域では非常に重要な情報が無視されています。

于 2008-08-27T20:42:16.223 に答える