想象一个项目MyLibrary,它曾经有自己的requirements.txt文件,指定每个依赖项所需的所有版本......
lib_a==0.1
lib_b==0.11
lib_c==0.1.1
lib_d==0.1.2
lib_e==0.1.8
还有一个项目ChildProject恰好具有相同类型的设置,具有自己的requirements.txt文件和所有内容。
ChildProject使用,MyLibrary因为它需要它具有的一些通用功能。这两个的问题在于,它ChildProject有一个也在 中指定的库MyLibrary,但版本不同,这会导致冲突并导致构建失败。
我为解决这个问题所做的工作是删除依赖项MyLibrary并为每个库指定最小和最大版本,setup_requires在setup()方法中的属性中指定那些......
setup(
setup_requires=['pbr', 'pytest-runner'],
install_requires=[
'lib_a>=0,<1',
'lib_b>=0,<2',
'lib_c>=0,<3',
'lib_d>=0,<4',
'lib_e>=0,<5'
],
pbr=True,
)
这就是我迷路的地方......
我应该删除requirements.txt的MyLibrary,并使用全部留给版本儿童项目?
如果是这样,我怎么知道ChildProject指定了所有需要的依赖项?如果我错过指定lib_ainChildProject怎么办?
是否setup_requires会自动安装符合约束的最新版本或它是如何工作的?(我问这个是因为 AFAIK,install_requires只是指定了约束,但在项目中不包含任何库)。
神不在的星期二
相关分类