我update-manager
的 Ubuntu 18.04 一直运行良好,直到突然显示一个错误:
AttributeError: module 'pyparsing' has no attribute 'downcaseTokens'
我如何才能带上我的更新管理器又去工作了?
答案1
似乎pyparsing
该属性所在的pp.downcaseTokens
模块已经发生了变化pp.pyparsing_common.downcase_tokens
(参见 GitHub 中的讨论AttributeError:模块“pyparsing”没有属性“downcaseTokens”#207)
因此快速修复方法如下:
auth.py
使用文本编辑器打开文件——我个人使用的是轻量级的mousepad
。 的位置auth.py
与错误消息一起给出。 在我的情况下,它位于httplib2
python 的本地包中,即/home/lovedByJesus/.local/lib/python3.6/site-packages/httplib2/auth.py
- 替换
pp.downcaseTokens
为pp.pyparsing_common.downcase_tokens
(我在第 20 行找到了属于该作业的表达式auth_param_name = token.copy().setName("auth-param-name").addParseAction(pp.downcaseTokens)
) - 保存文件并运行
update-manager
。它应该可以顺利运行。
答案2
我没有修改在其中一个 Python 文件中发现的包含“pp.downcaseTokens”的表达式site-packages
,而是直接运行:
pip install 'httplib2>=0.20.2'
正如其中一个答案所建议的那样这里。
这在 Ubuntu 22.04 上对我有用。