Диалоговое окно поиска и замены Python из-за ошибки быстрого программирования GUI

#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. Да, у меня есть файл, включенный в ту же папку. Это все та же ошибка.