Gnome の Python パッケージの `.desktop` ファイルとアイコンを (distutils または setuptools を使用して) 配布するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/501597

質問

現在、私は自動ツールを使用して自分のプロジェクトをビルド/インストールし、パッケージ化していますが、もっと「Python的」に感じられるものに移行したいと思っています。

私のプロジェクトは 2 つのスクリプト、1 つのモジュール、2 つの Glade GUI 記述、および 2 つの .desktop ファイルで構成されています。現在は純粋な Python プロジェクトですが、すぐに変更される可能性があります。

setuptools を見ると、.desktop ファイル以外のすべてを処理する方法が簡単にわかります。Gnome がそれらを見つけられるように、それらは特定のディレクトリに配置される必要があります。

そもそも distuils/setuptools を使用することは良い考えでしょうか?

役に立ちましたか?

解決

なんとかこれを機能させることができましたが、私にとっては次のような感じです 回避策.

これを処理する好ましい方法がわかりません...

私は以下を使用しました setup.py ファイル(フルバージョンは ここ):

from setuptools import setup

setup(
  # ...
  data_files=[
    ('share/icons/hicolor/scalable/apps', ['data/mypackage.svg']),
    ('share/applications', ['data/mypackage.desktop'])
  ],
  entry_points={
    'console_scripts': ['startit=mypackage.cli:run']
  }
)

スターター スクリプト トラフ entry_points 動作します。しかし data_files ここでは、指定されたフォルダーではなくeggファイルに置かれるため、デスクトップシェルからはアクセスできません。

これを回避するために、次を使用しました setup.cfg ファイル:

[install]
single-version-externally-managed=1
record=install.txt

これは機能します。どちらのデータ ファイルも適切な場所に作成され、 .desktop ファイルは Gnome によって認識されます。

他のヒント

一般的には、はい - Pythonのプロジェクトを構築するときにすべてがautotoolsのよりも優れています。

私は、これまでにsetuptoolsとの良好な経験を持っています。しかし、固定された場所にファイルをインストールすることがsetuptoolsのの強さではありません - 結局のところ、それはPythonのアプリケーションのためのinstallatersを構築するためのものではないのですが、Pythonライブラリを配布

(画像、UIファイルなどのような)アプリケーション・データ・ファイルではないファイルのインストールのためではなく、オペレーティングシステムへの統合を提供し、あなたは(RPMまたはDEBなど)実際のパッケージ形式を使用してオフに優れています。

言った、何がsetuptoolsのに基づいて、ビルドプロセスとその正当な場所にすべてをインストールするための小型のメイクファイルを持っていることからあなたを停止しません。

あなたはのpython-distutilsの-余分に使用しようとすることができます。 DistUtilsExtra.autoモジュール自動的に<のhref = "http://bazaar.launchpad.net/~python-distutils-extra-hackers/python-distutils-extra/debian/annotate/head:/doc/README" のrel = "nofollowをnoreferrer 「>はのの.desktopファイル、などなどグレイド/ GtkBuilder .uiファイル、Pythonモジュールやスクリプト、その他のデータファイルを、サポートしています。

これはDistutilsのとsetuptoolsのの両方で動作するはずです。

scroll top