1

我有一个使用 distutils 的 python 包。我想将 setup.py 配置为执行以下任一操作:

  • 检测先前安装的软件包版本并引发错误
  • 提议在继续安装之前删除以前安装的版本

有什么提示吗?可能需要 distutils.command.install 的自定义子类,但文档有点简洁。

4

1 回答 1

0

好的,这是我的初步答案。希望其他人有更好的计划。我不确定 Install.install_libbase 是否是正确的查看位置,或者它是否恰好在我的系统上是正确的..

import distutils.command.install

class Install(distutils.command.install.install):
    def run(self):
        name = self.config_vars['dist_name']
        if name in os.listdir(self.install_libbase):
            raise Exception("It appears another version of %s is already "
                            "installed at %s; remove this before installing." 
                            % (name, self.install_libbase))
        print("Installing to %s" % self.install_libbase)
        return distutils.command.install.install.run(self)

setup(cmdclass={'install': Install})
于 2014-03-25T02:05:25.810 回答