python依赖项根据主机安装?

python依赖项根据主机安装?,python,hadoop,Python,Hadoop,python中有没有办法根据主机中的libs安装依赖项?“问题”是我有一个可以在有lib和没有lib的机器上工作的包。e.q:Hadoop 但是,当pydoop未安装在主机中时,它正在下降。在没有安装Hadoop的机器上,可以使控制盘足够智能而不安装pydoop?这是可能的,但我不建议您这样做。相反,使用以下方法将其作为分发中的“额外”选项: 额外要求: 将“extras”(项目的可选功能)的名称映射到字符串或字符串列表的字典,指定必须安装哪些其他发行版才能支持这些功能。有关此参数格式的详细信息

python中有没有办法根据主机中的libs安装依赖项?“问题”是我有一个可以在有lib和没有lib的机器上工作的包。e.q:Hadoop


但是,当pydoop未安装在主机中时,它正在下降。在没有安装Hadoop的机器上,可以使控制盘足够智能而不安装pydoop?

这是可能的,但我不建议您这样做。相反,使用以下方法将其作为分发中的“额外”选项:

额外要求: 将“extras”(项目的可选功能)的名称映射到字符串或字符串列表的字典,指定必须安装哪些其他发行版才能支持这些功能。有关此参数格式的详细信息和示例,请参见下面的一节

因此,您的
setup.py
将具有如下内容:

setup(
    name="PyAgus",
    ...
    extras_require={
        'hadoop':  ["pydoop"],
    }
)
由用户决定是否使用可选的hadoop支持进行安装。请注意,在这种情况下,“用户”可能是编排回购,例如salt/ansible/puppet

如果您确实希望根据检查源计算机上的libs avail来动态决定是否安装额外的,则可以使用或仅将生成
install\u requires
参数的逻辑直接添加到
setup.py
中。这两种方法都很粗糙,如果你想继续讨论的话,PyPA对此也有自己的看法