2016-07-08 4 views
0

Действительно, этот вопрос задают много раз, но не смог найти ничего, чтобы решить мою проблему. У меня есть много модулей в моем проекте питона и она отлично работает, однако на создание исполняемого файла этого проекта я получаю ошибку:AttributeError: объект «QString» не имеет атрибута «find»

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

К сожалению, я не мог сделать воспроизводимый пример, как код настолько велик. Но ошибка исходит от линии, которая должна принимать пользовательский ввод

input = self.builselcom.currentText() 

который держит что-то вроде hg19.bt2

У меня есть индекс выше линии

tofind = ".bt2" 

и попытаться найти,

input.find(tofind) 

Примечание: Проект работает нормально, но ошибка с исполняемым файлом.

ответ

1

Вам необходимо преобразовать пользовательский ввод в строку. Он должен работать, просто добавив str в input = str(self.builselcom.currentText()). Надеюсь, это полезно.

+0

Если это была проблема, он также имел бы это в среде разработки (что он называет «проектом»). –

+0

Вы считаете, что это разумно, я не уверен, какая версия 'Qt' используется, но я предполагаю, что исполняемый файл не способен' typecast' вводить пользователя. –

+0

Спасибо, это сработало – AwaitedOne

0

Я предполагаю, что ваш исполняемый файл использует другую версию Qt DLL. (Я использую cx_Freeze и PySide и могу говорить только для этой среды.) Класс QString не существует в последних DLL, но он использовался; поэтому, если эта ошибка произошла в моей настройке, я бы точно знал, что это проблема с DLL. Возможно, вы можете попробовать явно скопировать библиотеки DLL в исполняемый каталог.

Смежные вопросы