Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 寻找关于如何为Gnome/Ubuntu开发小程序的建议_Python_Linux_Ubuntu_Gnome_Dbus - Fatal编程技术网

Python 寻找关于如何为Gnome/Ubuntu开发小程序的建议

Python 寻找关于如何为Gnome/Ubuntu开发小程序的建议,python,linux,ubuntu,gnome,dbus,Python,Linux,Ubuntu,Gnome,Dbus,我是一个linux(主要是ubuntu)用户,对系统如何工作有着合理的理解(尽管我肯定不是linux大师!)。在过去,我用python/GTK开发了小型跨平台桌面应用程序,并将它们作为自包含的文件树交付给客户机,因此唯一的依赖项是python本身和GTK 现在我想为ubuntu开发一个小程序,我想在GPL2或3下发布 特别是这些是我知道为了实现我的目标我必须学习的新步骤(很可能还有一些我不知道的步骤!) 与gnome集成:我希望我的应用程序可以作为小程序在任务栏中使用 使用D-bus:我特别希

我是一个linux(主要是ubuntu)用户,对系统如何工作有着合理的理解(尽管我肯定不是linux大师!)。在过去,我用python/GTK开发了小型跨平台桌面应用程序,并将它们作为自包含的文件树交付给客户机,因此唯一的依赖项是python本身和GTK

现在我想为ubuntu开发一个小程序,我想在GPL2或3下发布

特别是这些是我知道为了实现我的目标我必须学习的新步骤(很可能还有一些我不知道的步骤!)

  • 与gnome集成:我希望我的应用程序可以作为小程序在任务栏中使用
  • 使用D-bus:我特别希望我的小程序使用新的ubuntu osd通知框架,但与其他小程序的通信也是第二次迭代的可能功能
  • 打包:我希望在应用程序达到alpha阶段后尽快建立公共PPA,但我也希望在正式回购中使用现有包中的依赖项,而不是将库再次包含在我自己的包中
当然,官方文件将是我的第一个知识来源,但基于我在SO上收到的非常有用的答案的判断,我决定求助于SO社区,收集其他建议,例如:

  • 除了我之前概述的步骤外,还有其他步骤需要学习才能实施我的项目吗
  • <> LI>根据您自己的经验,您建议我提前学习这些步骤(因为这些知识会影响我对核心功能的编码方式),或者您会考虑将GNOME/D-总线和打包作为“更高封装级别”的集成,之后可以添加到核心功能之上吗?(注意:D-bus最初仅用于推送数据。输入数据将通过Web服务检索)
  • 您建议我将我的应用程序分为两个包(后端和前端),还是将其放在一个包中
  • 你知道有什么有用的资源,你会建议我去看看,学习我必须学习的东西吗
  • 你知道我应该注意的任何常见的“初学者错误”吗
  • 这些问题并不意味着详尽无遗:如果您觉得我在总体情况中遗漏了什么,我们非常欢迎您为我指出正确的方向!


    PS:如果我没有解释我的最终目标,请看一看:我想要实现的在用户界面方面是相似的(意思是:小程序应该显示状态,单击它应该打开应用程序本身,您可以从中配置小程序并执行各种操作)

    >>> import pynotify
    >>> pynotify.init("Lil' Applet")
    True
    >>> note = pynotify.Notification(
    ...            pynotify.get_app_name(), 
    ...            "Lil' Applet wants you to know something's up.", 
    ...            "/usr/share/icons/Human/48x48/status/dialog-information.png")
    >>> note.show()
    True
    
    这将显示如下所示的通知:

    [    ] **Lil' Applet**
    [ICON]
    [    ] Lil' Applet wants you to know something's up.
    

    正如您已经知道的,您的第一个也是最好的朋友将是他人编写的代码—复制、粘贴、剖析、理解。 幸运的是,有几个项目可以实现您想要实现的目标。 我可以推荐代码作为以干净的方式做事的主要参考。我认为DBU上也有一些东西。其他需要注意的是,(呵呵),以及你记得的任何其他具有功能X的应用程序。但有时可能需要一些C代码解密(就像小程序按钮位一样——我建议你最好从仓鼠那里拿出来,因为我花了很长时间才把事情弄清楚)

    然后,“devhelp”应用程序将起到很大的帮助作用-它允许您快速轻松地阅读和搜索手册页。请确保您还拥有适用于您打算使用的所有模块的-doc包。 对于用户界面,我强烈建议使用glade,因为这将允许您以后更轻松地更改界面。 当然会有一些怪癖和事情,你将通过艰苦的方式学习。但不应该太难

    打包,尤其是autotools会有点困难,但你会做好的。关于如何使用debian(以及从那里到PPA),你可以挖掘仓鼠的存储库历史。曾经有一个“debian”文件夹

    我建议从小事做起——看看你能不能找到一扇窗户,然后在上面扣上一个按钮。 你不必在第一次就“正确地”做。第一次,如果某件事能奏效,它会好起来的

    至于分离——在你到达那里之前我不会为此烦恼。分为两部分并有一个核心,以后应该不会太难。但这一切取决于你的优先次序


    最后一件事——结交熟悉该领域的朋友也很有帮助。结交新朋友的一种方法是参加其他项目,呵呵。

    这里已经有一些非常好的建议,但我建议你开发applet与其说是“用于Ubuntu”,不如说是“用于Gnome”例如,为Fedora和Arch Linux软件包等发行版制作RPM软件包并不需要太多额外的努力。但有一个主要的缺点——要与Debian stable保持兼容,您必须坚持使用GTK和GLib的旧版本,或者至少根据新版本选择任何功能.这很痛苦,但显然Debian稳定用户很欣赏

    我还建议尽早在某个地方建立一个源代码管理系统。您可能不担心磁盘崩溃,但有时能够恢复自上次提交以来所做的所有操作会为您节省很多麻烦

    这是链接到