我想做的事

我想做的事

我想做的事

我正在尝试为我的应用程序构建一个 RPM 包,该包可以安装在不同的 Fedora 发行版中,这些发行版具有不同的默认 Python 3 版本(即 Fedora 28 有 python3.6,Fedora 29 有 python3.7)

我用它来构建 RPM

python3 setup.py bdist_rpm

问题

如果我在 Fedora 28 上构建它,那么 RPM 会将我的 python 文件保存在/usr/lib/python3.6/site-packages.

当用户在 Fedora 29(默认 Python 为 3.7)上安装它时,它不会找到我的包,因为它会查找/usr/lib/python3.7/site-packages.

因此,当用户启动应用程序时,它自然会失败并出现错误“没有名为‘myappname’的模块”。

我不喜欢的解决方案

我可以构建多个 RPM 包——一个在 Fedora 28 中,另一个在 29 中

相反,我想构建一个适用于两个发行版的 RPM。

我尝试过的

我尝试添加 python37 作为依赖项,但应用程序也失败了,因为它无法导入像 python-Levenshtein 这样的依赖项——所有依赖项都安装在/usr/lib/python3.6/site-packages

我的规格文件是这里

相关内容