我有一个 python 项目依赖于另一个依赖 python-dateutil 的项目。当我尝试 python setup.py install
在我的项目中,它解决了 dateutil 对 python-dateutil 2.0 的依赖性,这在 python 2.x 上根本不起作用。我发现解决问题并使我的项目可安装的唯一方法是让我的项目直接依赖于 python-dateutil<2
,即使它根本不直接使用 dateutil 如果它的依赖项没有。
看起来 distutils2/PEP 345 有一个 Requires-Python指定项目兼容的 python 版本的字段。
- distutils2 是为您的项目指定此信息的唯一方法吗?
- pypi 或类似的东西是否能够利用此信息,以便如果我在 python 2.x 上安装项目,那么依赖项解析将忽略 python-dateutil 2?
最佳答案
我在使用 python-dateutil 时遇到了同样的问题.有 some discussion of the problem与它的作者,但没有真正的解决方案。 version listed on pypi是 1.5,但是 pip
和 easy_install
都从 pypi 列表中抓取主页以进行下载并获取那里列出的 2.0 版本 (python3)。
distutils2
中可能有一些东西可以解决它,但这意味着 python-dateutil
和您的第 3 方库都必须更新它们的分发元数据包含/使用此“Requires-Python”信息。
我认为你最好的选择是做你已经在做的事情,并确保你的项目直接依赖于它。
关于python - python项目可以依赖特定版本的python吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708720/