我已经安装LDOCE5 查看器按照说明在 Ubuntu 20.04 上这里。 总之:
安装一些依赖项:
sudo apt-get install git make python pyqt5-dev-tools python3-pyqt5 \ python3-pyqt5.qtwebkit python3-lxml python3-whoosh qtgstreamer-plugins-qt5
python3.8
在 Ubuntu 20.04 上安装更多依赖项:sudo apt-get install python3-pip python3-setuptools python3-distutils
将 ldoce5viewer-pyqt5 下载到 ~/Downloads:
cd ~/Downloads && git clone https://github.com/purboo/ldoce5viewer-pyqt5.git
打开下载文件夹中的Makefile,并在第2行更改
python
为python3
:gedit ~/Downloads/ldoce5viewer-pyqt5/Makefile
ldoce5viewer-pyqt5 中有一个名为的过时库,
cgi.escape()
该库已从 python3.8 中删除。这个库在三个文件中使用。为了解决这个问题,我们需要更改cgi
为以下三个文件中html
看到的位置 :from cgi import escape
gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/ldoce5/transform.py gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/indexer.py gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/ldoce5/extract.py
该软件的声音播放器部分存在问题。根据这个答案,为了解决这个问题,我们可以打开以下文件并更改
'appsrc.emit('push-buffer', Gst.Buffer.new_wrapped(self._data[:size]))'
到
'appsrc.emit('push-buffer', Gst.Buffer.new_wrapped(self._data[:size].data()))'
在第 114 行:
gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/utils/soundplayer.py
最后一步:
make && sudo make install
现在可以在已安装的应用程序中发现该软件(按键Super并搜索 ldoce5)。
安装成功,词典基本可用。唯一的问题是单击句子或单词的发音不会播放任何内容。软件中与声音相关的部分位于以下文件中:
gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/utils/soundplayer.py
我尝试调试该问题并确认:
软件中使用 Gstreamer 播放声音(代码中还有其他替代方案,但在 Ubuntu 20.04 中未使用它们)
Gstreamer 已安装在 Ubuntu 上,并且按照官方说明。
声音的 mp3 文件存在,可以下载(GUI 中有一个下载选项,如下面的屏幕截图所示):
我只是不知道为什么单击声音按钮(蓝色或红色图标)时没有播放声音。每次单击其中一个时,都会触发类play
的方法。没有错误,我可以确认方法的最后一行()也已到达。我无法进一步调查该问题。我非常感谢任何帮助解决此问题的人。GstreamerBackend(Backend)
soundplayer.py
self._player.set_state(Gst.State.PLAYING)