Pra*_*pal 5 python distutils rpm setuptools
我创建了一个新的 RPM 使用python bdist_rpm. 通常python setup.py install会安装 python 依赖项websocket-client或任何其他包。但是 RPM 只是拒绝安装任何东西。
显然,来自其他各种帖子的建议似乎只是要求在 setup.cfg 中将它们作为 rpm 包。这对我来说没有意义,因为大多数 rpm 包似乎都是旧版本,我不可能为我需要的所有 python 包创建 rpm。我需要一个更新的版本,yum 安装实际上没有安装软件包是没有意义的。
什么是正确的(干净和最简单的)方法?我相信如果 asetup.py有类似的东西
install_requires=[
"validictory",
"requests",
"netlogger>=4.3.0",
"netifaces",
"pyzmq",
"psutil",
"docopt"
],
Run Code Online (Sandbox Code Playgroud)
然后它应该尝试将它们包含在 rpm 中或尝试安装它。我正在使用 vagrant 尝试一个干净的 centos vm,我一直在破坏它,然后安装 rpm。
我使用的超级黑客方法是添加一个安装后脚本,其中包含所有要求作为 easy_install 安装(而不是 pip,因为旧版本可能没有 pip,甚至在安装 pip 之后,该方法在使用 python 2.6 的系统上失败)
#Adding this in setup.py
options = {'bdist_rpm':{'post_install' : 'scripts/rpm_postinstall.sh'}},
Run Code Online (Sandbox Code Playgroud)
那么脚本如下:
easy_install -U <pkgnames>
Run Code Online (Sandbox Code Playgroud)
当然,post_uninstall如果您想清理,也可以添加一个,但我不会这样做,因为您不知道什么正在使用除此应用程序之外安装的软件包。rpm 方法的逻辑似乎就是为了这个,但老实说它超出了工程范围,我宁愿将所有模块与 rpm 一起打包以确保它始终有效。** 迫切需要更清洁的解决方案 **
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |