0

我继承了一个 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属性中包含这些条件要求的明显方法。您将如何实现这一目标?或者,我是否完全走错了路?

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

4

2 回答 2

0

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

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

于 2020-01-27T10:04:34.327 回答
0

经过大量研究,我发现由于 snap 应用程序都是基于 Ubuntu 虚拟机构建的,因此只需包含所有 Ubuntu 依赖项,并且 snap 进程会将这些依赖项捆绑在应用程序中。然后,该应用程序将适用于任何 Linux 风格。所以我没有必要尝试在install_requires. 我需要做的就是包含 Ubuntu 依赖项。

我终于通过这个非常有用的演练得出了这个结论,我自己的测试已经证实了这一点: https ://medium.com/@abulka/getting-python-and-wxpython-apps-into-the-ubuntu-app -store-ccca7ae537a3

我希望这对其他人有帮助。

于 2020-01-31T15:22:15.167 回答