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})