python项目可以依赖于特定版本的python吗?

时间:2011-10-10 05:03:17

标签: python dependencies packaging

我有一个python项目依赖于另一个依赖于python-dateutil的项目。当我尝试python setup.py install我的项目时,它解决了对python-dateutil 2.0的dateutil依赖,它在python 2.x上根本不起作用。我发现修复问题并使我的项目可安装的唯一方法是让我的项目直接依赖于python-dateutil<2,即使它根本没有直接使用dateutil,如果它的依赖性没有。

看起来distutils2 / PEP 345有一个Requires-Python字段来指定项目兼容的python版本。

  1. distutils2是为项目指定此信息的唯一方法,
  2. pypi或类似的东西能否使用这些信息,所以如果我在python 2.x上安装项目,那么依赖解析将忽略python-dateutil 2?

1 个答案:

答案 0 :(得分:1)

我使用python-dateutil遇到了同样的问题。它有some discussion of the problem作者,但没有真正的解决方案。 version listed on pypi为1.5,但是pipeasy_install都会从pypi列表中删除主页以进行下载并获取其中列出的2.0版本(python3)。

distutils2中可能存在可以解决的问题,但这意味着python-dateutil和您的第三方库都必须更新其分发元数据以包含/使用此“需要 - Python的信息。

我认为你最好的选择是做你已经做过的事情并确保你的项目直接依赖它。