如何为依赖包B配置兼容正式版与内部Beta版的版本约束?
兼容正式版与内部Beta版的Python包依赖约束方案
你之前的约束冲突是因为用了逻辑与(逗号分隔),要求版本同时满足>1.7和<0.1,这两个区间完全互斥,自然会报错。要同时支持两种版本,得用逻辑或的语法,符合PEP 440版本规范的写法如下:
1. requirements.txt 中的配置
直接在文件里写一行:
B>=1.7,<2.0 || >=0.0b1,<0.1
2. setup.py 中的配置
在install_requires列表里添加:
install_requires=[ 'B>=1.7,<2.0 || >=0.0b1,<0.1', ]
这个约束的意思是:包B的版本要么处于正式版的1.7~2.0区间,要么处于内部Beta版的0.0b1~0.1区间。pip会自动识别符合任意一个区间的版本,不会再出现依赖冲突。
另外要注意,你的Beta版0.0bx属于PEP 440定义的预发布版本,>=0.0b1会匹配所有以0.0b开头的版本(比如0.0b111),直到0.1之前的版本都能被覆盖。
内容的提问来源于stack exchange,提问作者Ilya
相关产品推荐
相关产品推荐

