如何使用setup.py将包标记为过时?

时间:2015-01-21 10:14:04

标签: python setup.py

我正在使用distutils(setup.py)从我的python项目创建rpm-packages。现在,我的一个具有非常特定任务的项目(例如png创建)被转移到更通用的项目(image-toolkit)。

  1. 当他/她安装新软件包(image-toolkit)时,有没有办法告诉用户旧软件包(png-creation)已经过时。
  2. 有没有办法制作新版本的旧包(png-creation),告诉用户他/她应该使用新包(image-toolkit)?
  3. 这是两个不同的场景,第一个是我最喜欢的场景。在这两种情况下,我都假设用户已经使用他的包管理器安装了我的包(png-creation)。

    在第一个(我最喜欢的)场景中会发生以下情况:

    • 用户使用其包管理器运行更新。
    • 包管理器认识到png创建已过时,而且必须安装image-toolkit。因此,包管理器删除了png创建并安装了image-toolkit。

    如果无法实现这种情况,第二种方案将是:

    • 我告诉用户他们必须安装image-toolkit。
    • 用户使用他的包管理器运行install image-toolkit。
    • 包管理器识别出不再需要png创建并将其删除。

2 个答案:

答案 0 :(得分:0)

您可能希望使用可能阻止安装软件包的版本号,并且知道安装它的版本号是否需要指定版本。

像这样。

requires = ['setuptools ==0.8',
            'transaction==1.4.1']

答案 1 :(得分:0)

您可以将包标记为已废弃: https://docs.python.org/2/distutils/setupscript.html#relationships-between-distributions-and-packages

但是,这可能只是在没有警告的情况下卸载(替换)现有软件包。