最近在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 输入中文了。
Leave a Reply