【问题标题】:Python setup.py install - remove previous version while updatingPython setup.py install - 更新时删除以前的版本
【发布时间】:2019-03-06 14:19:58
【问题描述】:

我的软件包有一个 setup.py 脚本,我使用它来安装它 python ./setup.py install

似乎发生的情况是每次我增加版本时,旧版本没有/usr/local/lib/python2.7/dist-packages 中删除,所以我看到多个版本。

有没有办法设置这个,当一个人更新时,旧版本会被删除?

在 SO 上有一个类似的(但不完全是)question,询问如何在 setup.py 中卸载包,但我并不是真的希望将卸载作为单独的选项。我正在寻找一个干净的“更新”过程,在安装新版本之前删除旧版本。

另一种选择是,如果我可以从已安装的包名称中完全删除版本号,在这种情况下,我想它会覆盖,但我没有成功。如果我删除版本,它会创建带有“0.0”的包名称,这看起来很奇怪。

我的设置脚本:

import io
import os
import sys

from setuptools import setup

#Package meta-data.
NAME = 'my_package'
DESCRIPTION = 'My description'
URL = 'https://github.com/myurl'
EMAIL = 'myemail@gmail.com'
AUTHOR = 'Me'
VERSION = '3.1.12'

setup(name = NAME,
      version=VERSION,
      py_modules = ['dir.mod1',
                    'dir.mod2',
                  ]
      )

【问题讨论】:

    标签: python pip setup.py


    【解决方案1】:

    如果你想从你的包中删除以前的版本,那么你可以在你的包的父目录中使用 pip。假设您的 setup.py 在目录 my_package 中,那么您可以使用:

    pip install my_package --upgrade
    

    【讨论】:

    • force 不会删除旧版本。它只会强制覆盖当前版本。
    • 因此您可以使用“pip install my_package --upgrade”
    • 感谢您编辑您的答案。基于点子的方法工作得很好。我确实认为您应该删除强制建议作为替代方案。它不符合 Q 的要求
    猜你喜欢
    • 2012-08-12
    • 2016-01-07
    • 2011-05-29
    • 1970-01-01
    • 2020-10-28
    • 2013-03-15
    • 1970-01-01
    • 2011-02-10
    • 2018-12-26
    相关资源
    最近更新 更多