尝试使Python项目需求版本免费
设想一个项目尝试使Python项目需求版本免费,python,python-3.x,Python,Python 3.x,设想一个项目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有一个库,该库也在MyLibra
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()方法中的setup\u requires
属性中指定这些版本
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,
)
设置(
安装程序要求=['pbr','pytest runner'],
安装所需的=[
'lib_a>=0,=0,=0,=0,管理deps版本的一般建议:
- 库不锁定版本(即
install\u requires
根本没有版本,或宽松的限制,即2,您可以先构建MyLibrary(作为ChildProject中setup.py的依赖项),然后ChildProject中的下一个依赖项将是MyLibrary中使用的冲突包(我假设它将强制在ChildProject中指定的版本上进行新的安装)。至于这是否会卸载以前的版本,MyLibrary是否仍能工作……我不确定,它至少可能会构建