gpt4 book ai didi

python bdist_rpm 不使用 install_requires?

转载 作者:行者123 更新时间:2023-11-28 19:15:46 25 4
gpt4 key购买 nike

我使用 python bdist_rpm 创建了一个新的 RPM。通常 python setup.py install 会安装 python 依赖项,如 websocket-client 或任何其他包。但是 RPM 只是拒绝安装任何东西。

显然,其他各种帖子的建议似乎只是要求在 setup.cfg 中将它们作为 rpm 包。这对我来说没有意义,因为大多数 rpm 包似乎都是非常旧的版本,我不可能为我需要的所有 python 包创建 rpm。我需要一个更新的版本,yum 安装并没有实际安装这些包是没有意义的。

什么是正确的(简洁且最简单的)方法?我相信如果 setup.py 有类似

的内容
install_requires=[
"validictory",
"requests",
"netlogger>=4.3.0",
"netifaces",
"pyzmq",
"psutil",
"docopt"
],

然后它应该尝试将它们包含在 rpm 中或尝试安装它。我正在使用 vagrant 尝试一个干净的 centos 虚拟机,我一直在破坏它,然后安装 rpm。

最佳答案

好吧,我使用的 super hack 方法是添加一个安装后脚本,其中包含 easy_install 安装的所有要求(而不是 pip,因为旧版本可能没有 pip,即使在安装 pip 之后,该方法在使用 python 2.6 的系统上也失败了)

#Adding this in setup.py
options = {'bdist_rpm':{'post_install' : 'scripts/rpm_postinstall.sh'}},

那么脚本如下:

easy_install -U <pkgnames>

当然,如果您想清理,也可以添加 post_uninstall,但我不会这样做,因为您不知道除了这个应用程序之外安装的软件包有什么用途。rpm 方法的逻辑似乎是为了这个,但老实说它过度工程化,我宁愿用 rpm 打包所有模块以确保它始终有效。 ** 大声疾呼寻求更清洁的解决方案 **

关于python bdist_rpm 不使用 install_requires?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33687249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com