#python #qt #pyqt #importerror
#python #qt #pyqt #ошибка импорта
Вопрос:
При создании диалогового окна поиска и замены из «Быстрое программирование GUI с помощью Python и Qt (глава 07), автор Прентис Холл (Марк Сумерфилд)» я получаю следующую ошибку:
import ui_findandreplacedlg
ImportError: No module named ui_findandreplacedlg
В зависимости от того, какую версию python я запускаю, я также получаю:
File "findandreplacedlg.py", line 7, in <module>
ui_findandreplacedlg.Ui_FindAndReplaceDlg):
AttributeError: 'module' object has no attribute 'Ui_FindAndReplaceDlg'
Я получил исходный код с их веб-сайта, и он выдает ошибки в той же строке таким же образом. Я искал ошибки на их веб-странице без какого-либо упоминания. Кто-нибудь знает, каково решение?
Ответ №1:
Вам необходимо преобразовать ui
файлы с помощью pyuic
инструмента. Это объясняется в книге следующим образом (страница 206):
После того, как пользовательский интерфейс разработан и сохранен в файле .ui, он должен быть преобразован в код, прежде чем его можно будет использовать. Это делается с помощью программы командной строки pyuic4. Например:
C:pyqtchap07>pyuic4 -o ui_findandreplacedlg.py findandreplacedlg.ui
Или, если вы используете Linux:
$ cd pyqt/chap07
$ pyuic4 -o ui_findandreplacedlg.py findandreplacedlg.ui
$ python findandreplacedlg.py
Комментарии:
1. @Julia. Я тестировал с pyqtbook27.tar.gz и pyqtbook31.tar.gz , и они оба отлично работают для меня. Вам необходимо запустить программу с помощью
python findandreplacedlg.py
(после того, как выcd
перейдете в соответствующий каталог).2. Я думал, что использовал pyuic4, но, повторяя свои шаги, я заметил, что, когда я думал, что использую pyuic4 и pyuic, у меня установлены только pyuic и pyside-uic.
3. Теперь у меня возникла проблема с установкой pyuic4 из исходного кода. Я открою для этого новый поток.
Ответ №2:
Рассматриваемый код можно найти здесь —https://github.com/suzp1984/pyqt5-book-code/blob/master/chap07/ui_findandreplacedlg.py. Если этот файл находится в том же каталоге, что и код, который вы пытаетесь запустить, просто выполните
import ui_findandreplacedlg
Комментарии:
1. Да, у меня есть файл, включенный в ту же папку. Это все та же ошибка.