在 ubuntu 17.10 上运行更新管理器时出现 TypeError

在 ubuntu 17.10 上运行更新管理器时出现 TypeError

当我尝试运行更新管理器时收到以下错误:

szymon@sm:~$ 更新管理器
回溯(最近一次调用最后一次):
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py”,第 67 行,正在更新
    _(“正在检查更新…”),False)
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py”,第 159 行,位于 _show_transaction
    产量 trans.run()
dbus.exceptions.DBusException:org.freedesktop.DBus.Python.TypeError:Traceback(最近一次调用最后一次):
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/aptdaemon/core.py”,第 913 行,在 _run 中
    产生 self._check_auth()
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/aptdaemon/core.py”,第 965 行,位于 _check_auth
    授权=产生self._check_alternative_auth()
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
TypeError:__init__() 缺少 1 个必需的位置参数:'action_id'

回溯(最近一次调用最后一次):
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py”,第 67 行,正在更新
    _(“正在检查更新…”),False)
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py”,第 159 行,位于 _show_transaction
    产量 trans.run()
dbus.exceptions.DBusException:org.freedesktop.DBus.Python.TypeError:Traceback(最近一次调用最后一次):
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/aptdaemon/core.py”,第 913 行,在 _run 中
    产生 self._check_auth()
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
  文件“/usr/lib/python3/dist-packages/aptdaemon/core.py”,第 965 行,位于 _check_auth
    授权=产生self._check_alternative_auth()
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 477 行,位于 _inline_callbacks 中
    结果 = gen.throw(结果.类型(结果.值).with_traceback(结果.traceback))
TypeError:__init__() 缺少 1 个必需的位置参数:'action_id'


在处理上述异常的过程中,又发生了另一个异常:

回溯(最近一次调用最后一次):
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 390 行,位于 _next
    self.result = 回调(self.result,*args,**kwargs)
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 535 行,位于 gotResult 中
    _inline_callbacks(res,gen,延迟)
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 525 行,位于 _inline_callbacks 中
    deferred.errback()
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 352 行,在 errback 中
    self._next()
  文件“/usr/local/lib/python3.6/dist-packages/defer/__init__.py”,第 408 行,位于 _next
    自我.结果.回溯)
  文件“/usr/lib/python3/dist-packages/apport_python_hook.py”,第 98 行,位于 apport_excepthook
    pr['_PythonExceptionQualifier'] = 名称
  文件“/usr/lib/python3/dist-packages/problem_report.py”,第 652 行,位于 __setitem__
    引发 TypeError("键 %s 的值必须是字符串、压缩值或文件引用" % k)
TypeError:键 _PythonExceptionQualifier 的值必须是字符串、CompressedValue 或文件引用

当更新管理器在系统启动时自动运行时也会发生这种情况。

当我使用 sudo 运行 update-manager 时,不会发生此错误。

版本信息:

szymon@sm:~$ update-manager --version
更新管理器:版本 1:17.10.11su

szymon@sm:~$ lsb_release -a
LSB 版本:core-9.20160110ubuntu5-amd64:core-9.20160110ubuntu5-noarch:printing-9.20160110ubuntu5-amd64:printing-9.20160110ubuntu5-noarch:security-9.20160110ubuntu5-amd64:security-9.20160110ubuntu5-noarch
分销商 ID:Ubuntu
描述:Ubuntu 17.10
版本:17.10
代号:巧妙

迄今已执行的操作:

  1. 重新安装了 update-manager、python3-update-manager、update-manager-core,并使用 synaptic 进行延迟。

我可以执行其他步骤来修复此问题吗? update-manager 默认应使用 python3.6 吗?

编辑 1:添加 pip3 列表输出

szymon@sm:~/Projects/aurelia/contact-manager$ pip3 列表
弃用:默认格式将来会切换为列。您可以使用 --format=(legacy|columns)(或在 pip.conf 中的 [list] 部分下定义 format=(legacy|columns))来禁用此警告。
asn1crypto (0.23.0)
证书(2017.4.17)
cffi (1.11.2)
chardet (3.0.4)
命令未找到 (0.3)
配置对象 (5.0.6)
密码学(2.1.4)
推迟(1.0.4)
defusedxml (0.5.0)
发行版信息 (0.0.0)
未来(0.16.0)
伊德娜 (2.5)
jira(1.0.10)
junitparser (1.0.0)
钥匙圈(10.5.0)
oauthlib (2.0.1)
聚苯乙烯 (3.1.1)
pep8 (1.7.1)
pip(9.0.1)
pycparser (2.18)
python-debian(0.1.30)
请求(2.18.1)
请求-oauthlib (0.8.0)
请求工具带 (0.8.0)
SecretStorage(2.3.1)
设置工具 (36.6.0)
六 (1.10.0)
制表(0.8.2)
ubuntu-驱动程序-通用 (0.0.0)
无人值守升级 (0.1)
urllib3 (1.21.1)
轮子 (0.29.0)

答案1

看来该问题是由defer包引起的,update-manager有 15 条相关消息。

尝试使用

sudo pip3 uninstall defer==1.0.4

并从存储库重新安装一个

sudo apt-get install --reinstall python3-defer

相关内容