1
我有一个使用distutils的python软件包。我想配置setup.py做以下任一操作:如何避免使用distutils覆盖以前的软件包安装
- 检测包的先前安装的版本,并引发错误
- 发售与继续之前,移除先前安装的版本安装
任何提示? distutils.command.install的自定义子类可能需要,但documentation有点简洁。
我有一个使用distutils的python软件包。我想配置setup.py做以下任一操作:如何避免使用distutils覆盖以前的软件包安装
任何提示? distutils.command.install的自定义子类可能需要,但documentation有点简洁。
好的,这是我的第一个答案。希望别人有更好的计划。我不确定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})