AttributeError: 'QString' object has no attribute 'find'

AttributeError: 'QString' object has no attribute 'find'

这个问题确实被问过很多次了,但是没找到解决我问题的方法。我的 python 项目中有很多模块并且工作正常,但是在创建该项目的可执行文件时出现错误:

AttributeError: 'QString' object has no attribute 'find'

不幸的是我无法制作一个可重现的例子,因为代码太大了。但是错误来自接受用户输入的行

input = self.builselcom.currentText()

其中包含类似 hg19.bt2

的内容

我有上面一行的索引

tofind = ".bt2"

并尝试通过

查找
input.find(tofind)

注意:项目工作正常,但可执行文件出错。

您需要将用户输入转换为字符串。它应该通过将 str 添加到 input = str(self.builselcom.currentText()) 来工作。希望这对您有所帮助。

我的猜测是您的可执行文件使用了不同版本的 Qt DLL。 (我使用 cx_Freeze 和 PySide,只能代表那种环境。) QString class 在最新的 DLL 中不存在,但它曾经存在;所以如果这个错误发生在我的设置中,我肯定知道这是一个 DLL 问题。也许您可以尝试将 DLL 显式复制到可执行目录。