代码之家  ›  专栏  ›  技术社区  ›  fluter

python_requises中的版本条件

  •  0
  • fluter  · 技术社区  · 3 年前

    我们有一个适用于2.7和3.8后版本的包,我们需要保留2.7,以便为没有移动的用户提供支持,但当我在setup.py中这样做时:

    python_requires="== 2.7.*, >= 3.8"
    

    这不起作用,当我在3.8.11中安装生成的轮子文件时,它会说:

    ERROR: Package 'mypkg' requires a different Python: 3.8.11 not in '==2.7.*,>=3.8'
    

    为什么是 3.8.11 >= 3.8 ? 如何解决这个问题?

    1 回复  |  直到 3 年前
        1
  •  1
  •   blhsing    3 年前

    这是因为逗号 , 在Python中充当逻辑“and”运算符 version specifiers ,并且没有一个版本可以同时匹配这两者 == 2.7.* >= 3.8 同时

    不幸的是,由于版本说明符中没有提供“或”运算符,因此您必须通过彻底排除两个兼容范围之间的已知不兼容版本来解决此问题:

    python_requires=">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*, != 3.7.*"