Questo problema è causato dal uicmancato funzionamento corretto. Non sono sicuro del perché, ma posso mostrare i sintomi e una soluzione alternativa.
Il .uifile del plugin iniziale ha un resourceselemento vuoto :
<resources/>
Quando modifichi le risorse per il plugin in QtDesigner, questo cambia in:
<resources>
<include location="resources.qrc"/>
</resources>
Questa è la fonte del problema. Se si modifica il file .qrc in quel tag di inclusione,resourcesXXX.qrc l'errore cambierà in No module named resourcesXXX_rc.
Nota: quanto segue si basa su una compilazione di plug-in con 'test' inserito in tutti i campi del generatore di plug-in QGIS.
Nel file test_dialog.py le seguenti righe compilano il file .ui :
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
Questo è dove si verifica l'errore.
Modifica il tuo .uifile per tornare a <resources/>e il problema è stato risolto. Fino a quando non modifichi nuovamente la finestra di dialogo in QtDesigner. È necessario apportare questa modifica al .uifile dopo ogni modifica della finestra di dialogo.
La soluzione a questo è di cambiare il tuo plugin in modo che funzioni come funzionavano le versioni precedenti del plugin. Ciò comporta la sostituzione della chiamata uic e delle linee di classe nel file _dialog.py . Sostituisci queste righe:
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
class testDialog(QtGui.QDialog, FORM_CLASS):
con:
from test_dialog_base import Ui_testDialogBase
class testDialog(QDockWidget, Ui_testDialogBase):
Ora dovrai correre
pyuic4 -x test_dialog_base.ui > test_dialog_base.py
quando si crea il plug-in per la prima volta e ogni volta si modifica la finestra di dialogo del plug-in con QtDesigner. Questo era il vecchio metodo di plugin.
È possibile scegliere se modificare il .uifile o eseguire pyuic4ogni volta.
No module named resources_napoved_rcepyrcc4 -o resources_napoved_rc.py resources_napoved.qrco è un errore di battitura?