Gnome の Python パッケージの `.desktop` ファイルとアイコンを (distutils または setuptools を使用して) 配布するにはどうすればよいですか?
-
20-08-2019 - |
質問
現在、私は自動ツールを使用して自分のプロジェクトをビルド/インストールし、パッケージ化していますが、もっと「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のの両方で動作するはずです。