首页 > 解决方案 > 有没有办法更新一个包,并递归地更新它使用的所有包?

问题描述

我创建了一个供内部使用的包。在我的设置文件中,我有类似的内容:

from setuptools import setup, find_packages

setup(
    name='myutils',
    version='0.3',
    description='Set of utils for these projects',
    packages=find_packages(),
    install_requires=[
        'requests',
        'arrow',
        'slackclient'
    ]
)

它运行良好,并且可以install_requires顺利安装所有软件包。

但是,有时这些软件包中的一些可能需要更新,所以我希望pip install --upgrade myutils在 中更新这些软件包install_requires,而事实并非如此。

有没有办法做某种或类似的事情,以便也安装内部包?我能想到的唯一解决方法是以 的形式定义最小包版本,但这似乎不是最推荐的方法pip install --upgrade --recursive myutilspackage>=that_version.X.y.z

标签: pythonpipsetuptoolssetup.py

解决方案


pip 最近(几年前,现在我检查了)更改了默认策略--upgrade- 它用于升级包和任何传递包,但更改为仅升级包

幸运的是,添加了一个新选项来控制此行为:--upgrade-strategy

要恢复旧的“升级一切”方法,您可以使用pip install --upgrade --upgrade-strategy=eager PKG (默认策略是only-if-needed


推荐阅读