首页 > 解决方案 > 基于操作系统的不同 install_requires

问题描述

我继承了一个 python 项目,它只包含 1 个 python 文件,旨在在 Linux 上安装和运行。我对python知之甚少,对Linux知之甚少。

目前 Ubuntu、Fedora 和 Arch 有单独的构建过程,它们分别生成一个 DEB 文件、一个 RPM 文件和一个 PKG.TAR.XZ 文件。然后,用户需要根据他们的系统经历不同的安装过程。

我的首要任务之一是为我们的用户整合和简化这个过程。经过调查,Snap Store似乎是一个不错的解决方案。Snap Store 似乎需要setuptools

但是,我的每种构建类型都取决于不同的要求。例如,DEB 和 RPM 需要python3-suds,但 ARCH 需要python-suds。ARCH 和 RPM 想要libappindicator-gtk3,但 DEB 想要gir1.2-appindicator3-0.1and gir1.2-gtk-3.0

我找不到在我的 setup.pyinstall_requires属性中包含这些条件要求的明显方法。您将如何实现这一目标?或者,我是否完全走错了路?

当您回答时,请记住我是新手!谢谢!

标签: snapcraft

解决方案


首先,您可以查看https://www.flatpak.org/它类似于 Snap。只是 IMO 稍微好一点。

使用 Snap 或 Flatpak 时,您不需要关心是否需要 python-suds 或 python3-suds。结果基本上是一个容器。您只需选择在其之上构建的运行时并在那里解决依赖项。然后容器(无论是 Flatpak 的 Snap)在每个操作系统上运行 - 无论是 Ubuntu、Fedora 还是 Arch。它与其包管理工具没有任何关系。它是孤立的。


推荐阅读