Spyder (以及其他PyQt程序) 无法使用 fcitx 输入法输入中文的解决办法

最近在Ubuntu 18.04 LTS上安装了 Spyder 4,并将输入法由系统默认的ibus换为了Fcitx+搜狗拼音,其他程序都正常输入,但无法在Spyder中使用 Fcitx 输入中文。我的Spyder是通过pip命令安装的。

经过研究,找到原因是,Spyder 是使用 PyQt5 作为 GUI 的抽象层,而PyQT5中默认没有加入fcitx的输入插件,只有ibus的:

$ ls /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/plugins/platforminputcontexts/
libcomposeplatforminputcontextplugin.so  libibusplatforminputcontextplugin.so

因此,解决办法为,在PyQt5中为 fcitx 输入的动态链接库创建软链接(或者复制,但软链接更好):

$ sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/plugins/platforminputcontexts/

进行如上设置后,不用重新登录,只需要重新启动 Spyder 应用程序即可看到能正常使用 fcitx 输入中文了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注