【发布时间】:2017-05-12 13:29:32
【问题描述】:
所以我有这个项目,其中有许多从 pip 安装并记录在 requirements.txt 中的依赖项 我现在需要添加另一个 pip 上不存在的依赖项,并且我将它作为某个地址中的 RPM。 作为要求安装它的最 Pythonic 方式是什么? 谢谢! 代码将在 RHEL 和 Fedora 上运行
【问题讨论】:
-
通过
subprocess从setup.py运行yum快速肮脏的黑客攻击,如果yum失败或未找到,则会引发异常并显示相应的错误消息。 -
@NizamMohamed - “setup.py”应该知道 Python 依赖项,而不是 RPM。您的上述建议将是非常糟糕的做法。
-
@alex
setup.py是一个可以运行任何python代码的python脚本。distutils已被非标准库setuptools增强。谁来定义什么是不好的做法? -
@NizamMohamed - 通过向“setup.py”添加调用 yum 的子进程,您将 (1) 使您的 Python 项目平台特定于 Fedora/RHEL,(2) 需要 root 权限才能运行任何
setup.py命令和 (3) 您的建议为setup.py增加了相当大的复杂性,只是为了生成一条错误消息。请记住,在setup.py中声明一个普通的 Python 依赖项将导致如果该依赖项无法满足,则生成一条错误消息,无论该依赖项是否必须通过 PIP 或 RPM 安装。 -
@alex 如果需要 (1) 使用
platform模块并采取相应措施 (2) 使用sudo提示 (3) 我说这是一个 hack!
标签: python pip fedora requirements.txt