[Technical exchange] pycharm使用qt5开发程序,调试可以中文输入,打包后不能输入中文 Resolved
Tofloor
poster avatar
166******65
deepin
2025-09-06 00:10
Author

如题,统信系统。pycharm使用qt5开发一个小功能,已经将libfcitxplatforminputcontextplugin.so放入Python环境中。可以调试中可以输入中文。使用pyinstaller命令生成程序后,不能输入中文。请教大神如何解决。测试代码如下

# simple_test.py
import sys
import os
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout

# 设置环境变量(最简单直接)
os.environ['QT_IM_MODULE'] = 'fcitx'

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle('中文输入测试')
layout = QVBoxLayout()

text_edit = QTextEdit()
text_edit.setPlaceholderText('请在这里尝试输入中文...')
layout.addWidget(text_edit)

window.setLayout(layout)
window.show()

sys.exit(app.exec_())
Reply Favorite View the author
All Replies
166******65
deepin
2025-09-06 00:11
#1

问了deepseek和豆包,给的方案都解决不了。

Reply View the author
米饭虚拟机
deepin
2025-09-06 01:24
#2

可能是pyinstaller没把libfcitxplatforminputcontextplugin.so打包进去?confused

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2025-09-06 03:25
#3

用nuitka打包

pyinstaller在Linux上好像有些问题

Reply View the author
166******65
deepin
2025-09-06 07:21
#4
把一切操作变成GUI

用nuitka打包

pyinstaller在Linux上好像有些问题

用nuitka试了,也不行

Reply View the author
166******65
deepin
2025-09-06 07:22
#5
米饭虚拟机

可能是pyinstaller没把libfcitxplatforminputcontextplugin.so打包进去?confused

怎么打包进去啊?

Reply View the author
SkyShadowHero
deepin
2025-09-06 08:06
#6

在pyinstaller生成的spec文件里写上

# 定义要捆绑的二进制文件
binaries_to_include = []
if sys.platform == 'linux':
    # 将 'lib' 目录下的 so 文件,放到程序包内的 'lib' 目录
    binaries_to_include.append(('lib/libfcitx5platforminputcontextplugin.so', 'lib'))

试试,如果输入法修复的so文件在lib/libfcitx5platforminputcontextplugin.so的话。

我之前也用pyqt5做了个小应用,打包的输入法解决了的,找的llm帮助,可以参考一下

github

Reply View the author
166******65
deepin
2025-09-06 09:14
#7
SkyShadowHero

在pyinstaller生成的spec文件里写上

# 定义要捆绑的二进制文件
binaries_to_include = []
if sys.platform == 'linux':
    # 将 'lib' 目录下的 so 文件,放到程序包内的 'lib' 目录
    binaries_to_include.append(('lib/libfcitx5platforminputcontextplugin.so', 'lib'))

试试,如果输入法修复的so文件在lib/libfcitx5platforminputcontextplugin.so的话。

我之前也用pyqt5做了个小应用,打包的输入法解决了的,找的llm帮助,可以参考一下

github

感谢大神,已经完美解决了。需要在代码中加入写入部署输入法模板。大神提供的代码很重要!感谢,感谢,感谢

Reply View the author