Python 有没有办法在debian/control中定义分组的条件依赖项?

Python 有没有办法在debian/control中定义分组的条件依赖项?,python,debian,packaging,python-2.x,dpkg,Python,Debian,Packaging,Python 2.x,Dpkg,我正在对一个Python包进行Debianing,它有一点奇怪的依赖项。它可以是: 取决于python2.7 取决于python2.6和python-orderedict(我在PyPI上为orderedict自建的包) 例如,在mysetup.py中,我有: deps = ["Flask >=0.8"] if not hasattr(collections, "OrderedDict"): # Python 2.6 deps.append("ordereddict") set

我正在对一个Python包进行Debianing,它有一点奇怪的依赖项。它可以是:

  • 取决于
    python2.7
  • 取决于
    python2.6
    python-orderedict
    (我在PyPI上为
    orderedict
    自建的包)
例如,在my
setup.py中,我有:

deps = ["Flask >=0.8"]
if not hasattr(collections, "OrderedDict"): # Python 2.6
    deps.append("ordereddict")

setup(
    …
    install_requires=deps,
    …
)
我在Debian打包文档中没有找到任何关于这个问题的信息。突然间,我试着写作

Depends: ..., python2.7 | (python2.6, python-ordereddict)
但是,毫不奇怪,这是一个不起作用的错误语法:

dpkg-gencontrol: warning: can't parse dependency (python2.6
我使用的是dh_python2,
${python:dependens}
提供了非常不合理的列表,如

Depends: python2.7 | python2.6, python (>= 2.7.1-0ubuntu2),
    python (<< 2.8), python-flask, python-ordereddict
依赖于:python2.7 | python2.6,python(>=2.7.1-0ubuntu2),

python(一种选择是让
PythonOrdereddict
依赖于
python2.6
,然后让您的主包依赖于
python2.7 | PythonOrdereddict
。我认为用2.7安装
PythonOrdereddict
没有意义,因为
ordereddict
在该版本中可用

当然,这很难看,因为它将主包的依赖关系推送到库中。另一种方法是认识到依赖关系必须是(CNF)中的命题公式。通过应用命题逻辑的方法,您可以转换

python2.7 | (python2.6, python-ordereddict)
相当于CNF

python2.7 | python2.6, python2.7 | python-ordereddict
(我承认,这也不是特别漂亮)