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

标签 python dependencies packaging

我有一个 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 版本的字段。

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

最佳答案

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

distutils2 中可能有一些东西可以解决它,但这意味着 python-dateutil 和您的第 3 方库都必须更新它们的分发元数据包含/使用此“Requires-Python”信息。

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

关于python - python项目可以依赖特定版本的python吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708720/

相关文章:

python - 通过将列与行 pandas python 中的 NaN 值进行匹配,将数据框中的一行添加到另一行中

python - Seaborn 热图中按行进行颜色缩放

javascript - 需要 JS,只定义一次依赖

gradle - 使用Jar gradle任务时如何避免命名冲突?

python - 一种用指定键列表对 dict 的值求和的 pythonic 方法?

用于类和子类的 Python IsInstance()

security - npm 审计是否有替代 yarn 的方法?

jakarta-ee - Netbeans:如何创建Gradle Java EE项目?

java - 如何将 Eclipse 中每个打开的项目导出为自己的 JAR?

c++ - 什么是 debian 打包过程中的 changelog.Debian.gz 文件?