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 显式复制到可执行目录。
这个问题确实被问过很多次了,但是没找到解决我问题的方法。我的 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 显式复制到可执行目录。