For future reference one annoying thing about the non-interactive version of the upgrader is that it has its own exception handler e.g.:
class DistUpgradeViewNonInteractive(DistUpgradeView): " non-interactive version of the upgrade view " def __init__(self, datadir=None, logdir=None): DistUpgradeView.__init__(self) self.config = DistUpgradeConfig(".") self._acquireProgress = NonInteractiveAcquireProgress() self._installProgress = NonInteractiveInstallProgress(logdir) self._opProgress = apt.progress.base.OpProgress() sys.__excepthook__ = self.excepthook
Disabling sys.__excepthook__ allowed the real error, UnicodeDecodeError, to surface.
For future reference one annoying thing about the non-interactive version of the upgrader is that it has its own exception handler e.g.:
class DistUpgradeView NonInteractive( DistUpgradeView ):
DistUpgradeVie w.__init_ _(self) ig(".")
self._ acquireProgress = NonInteractiveA cquireProgress( )
self._ installProgress = NonInteractiveI nstallProgress( logdir)
self._ opProgress = apt.progress. base.OpProgress ()
sys.__ excepthook_ _ = self.excepthook
" non-interactive version of the upgrade view "
def __init__(self, datadir=None, logdir=None):
self.config = DistUpgradeConf
Disabling sys.__excepthook__ allowed the real error, UnicodeDecodeError, to surface.