我想做的事
我正在尝试为我的应用程序构建一个 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
我的规格文件是这里。