【问题标题】:Bundling and distributing nautilus-python extensions with application使用应用程序捆绑和分发 nautilus-python 扩展
【发布时间】:2018-11-30 07:20:36
【问题描述】:

我编写了一个 python 应用程序,我使用 cx_freeze 来冻结脚本并创建可执行文件。然后我使用 shell 脚本将它变成一个可执行的 bin 包。

最近我使用 nautilus-python 开发了一个上下文菜单扩展,并希望将其包含在我的应用程序包中。显然我不能将 .py 文件放在 ~/.local/share/nautilus-python/extensions 下。我尝试只放置 .pyc 文件,并为不起作用的脚本启用可执行位。

任何指针 reg 这将非常有帮助。

【问题讨论】:

    标签: python ubuntu gnome pygobject nautilus


    【解决方案1】:

    cx_Freeze 适用于 Windows 或 Mac,但在 Linux 系统上,应用程序应与包管理器一起安装。通常,发行版会指定创建包的人员。或者,您可以选择您想要支持的发行版并自己为它们创建软件包,或者您可以使用OBS 之类的服务。

    如果您真的想为人们提供一个可执行文件以将其放入他们在 PATH 上的目录中,则需要单独提供扩展名。

    请不要让应用程序在启动时安装扩展程序,用户应保留对其计算机的控制权。或者,如果您这样做,请添加 setup.py 标志,以便发行版可以轻松禁用它。

    【讨论】:

    • 如果禁用扩展是每个应用程序在内部提供的选项来显示/隐藏外壳扩展(例如,Win32 COM 扩展)以根据用户的意愿注册/取消注册。我们也计划提供相同的服务。
    • 你的建议很笼统。但我的问题是我们如何将它与应用程序捆绑在一起(例如在 C 中我们可以有 so 文件)?
    • 我们也知道不同Linux风格的独立包装系统。我们的应用程序需要提供一个 bin 包,这就是我们选择上述选项的原因。
    • nautilus-python 仅支持从predefined directories 加载脚本。公平地说,没有用于在运行时加载脚本的 API,无需将其安装到其中一个路径中。
    • 您可以让您的程序在启动时将脚本复制到那里,但对于 Linux 发行版来说这是一个很大的禁忌,因为包管理器不会知道它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2015-10-30
    • 2016-04-16
    相关资源
    最近更新 更多