问题
最近鼓捣scrcpy投屏手机的时候,都是去官方仓库看readme,全英文文档,总有些不认识的单词,于是想着整个词典,就想到了有道词典。安装过程很顺利,结果安装完之后启动不了,点图标没有反应,在命令行里启动报错如下
(base) ➜ ~ youdao-dict
Traceback (most recent call last):
File "/usr/bin/youdao-dict", line 27, in <module>
from dae.daeclient import DAEClient
File "/usr/share/youdao-dict/dae/daeclient.py", line 36, in <module>
from dae.window import Window
File "/usr/share/youdao-dict/dae/window.py", line 29, in <module>
from dae.webview import WebView
File "/usr/share/youdao-dict/dae/webview.py", line 27, in <module>
from dae.webpage import WebPage
File "/usr/share/youdao-dict/dae/webpage.py", line 26, in <module>
from PyQt5.QtNetwork import QNetworkDiskCache
ImportError: /usr/lib/libgssapi_krb5.so.2: undefined symbol: k5_sname_compare, version krb5_3_MIT
解决过程
寻思这应该是某个依赖包的问题,在网上百般搜索无果,无意中在软件包管理里面点到youdao-dict的详情里面,看见了两个网址linux版 - 有道词典 和 AUR(en) - youdao-dict。
第一个就是有道官网软件下载的地址,看了下版本竟然还是1.1.0,更新时间是2015年,最新版本都已经6.0了,直接放弃。
点进去第二个地址,发现是archlinux的包管理youdao-dict 6.0.0-4详情页。
里面正好有评论说到这个问题,是因为Arch官方的pyqt5近期的更新中把webkit支持废弃掉了,所以有道词典无法启动,而我正好最近刚刚更新过一波软件,去检查了下我的那个python-pyqt5 果然是移除了webkit的版本。
按照评论里说的重新找了个支持qtwebkit的python-pyqt5,我这里用得是是 youdao-dict的package detail中dependencies列出的 python-pyqt5-sip4。
安装python-pyqt5-sip4 这个编译安装花了很长的时间,下午一直安装到晚上,安装好之后又把有道也重装了一遍,点图标终于可以打开了,不过命令行还是报错。
PS: 安装卸载软件这些操作我都是用的manjaro自带的软件管理界面操作的。
蓝色主题的有道词典好久没见到了,好怀念啊。
总结
youdao-dict 6.0.0-4依赖python-pyqt5的webkit,但是我本地的python-pyqt5版本是最新的,去掉了webkit的依赖。重新编译安装了一个python-pyqt5-sip4的版本,成功解决了这个问题。