如何在 Gnome 中分发 Python 包的“.desktop”文件和图标(使用 distutils 或 setuptools)?

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

目前,我正在使用自动工具来构建/安装和打包我的一个项目,但我真的很想转向一些感觉更“Pythonic”的东西。

我的项目由两个脚本、一个模块、两个 Glade GUI 描述和两个 .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未在指定的文件夹,所以他们无法通过桌面外壳进行访问。

要解决这个问题,我使用了下列setup.cfg文件:

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

此工作。这两个数据文件中正确的位置创建,并且.desktop文件由侏儒识别。

其他提示

在一般情况下,是的 - 一切都构建Python项目时比自动工具更好

我有一个至今setuptools的好经验。但是,安装文件到固定的地点不是setuptools的的实力 - 毕竟,它不是建立installaters的Python应用程序,但分发Python库

有关的安装其不是应用程序数据文件(如图像,UI文件等)的文件,但提供集成到操作系统中,你是使用实际的包装形式(如RPM或DEB)更好。

这是说,没有什么可以阻止你不必基于setuptools的构建过程,并安装到一切应有的地位一小make文件。

您可以尝试使用 python-distutils-额外. 。这 DistUtilsExtra.auto 自动模块 支持 .desktop 文件,以及 Glade/GtkBuilder .ui 文件、Python 模块和脚本、杂项数据文件等。

它应该可以与 Distutils 和 Setuptools 一起使用。

我创建 https://pypi.python.org/pypi/install-freedesktop 。它会自动为gui_scripts入口点,它可以通过设置参数进行自定义创建.desktop文件,并且支持--user以及整个系统的安装。相比DistUtilsExtra,它在范围更窄和IMHO更Python(显式优于隐式)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top