Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使Python项目需求版本免费_Python_Python 3.x - Fatal编程技术网

尝试使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是否仍能工作……我不确定,它至少可能会构建