I tried to transpose the QGIS 2 process with no success.
I first had to edit C:\Program Files\QGIS 2.99\etc\ini\python-core.bat which contains references to Python27 instead of Python36.
I run C:\Program Files\QGIS 2.99\bin\o4w_env.bat to properly configure QGIS python environment, but then, when I launch :
"C:\Program Files\QGIS 2.99\apps\Python36\Scripts\pyuic5.bat" -o dockwidget_base.py dockwidget_base.ui
I get this error :
Traceback (most recent call last):
File "C:\PROGRA~1\QGIS2~1.99\apps\Python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\PROGRA~1\QGIS2~1.99\apps\Python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\PROGRA~1\QGIS2~1.99\apps\Python36\lib\site-packages\PyQt5\uic\pyuic.py", line 26, in
from PyQt5 import QtCore
ImportError: DLL load failed: Specified module could not be found.
Similarly, when I launch :
"C:\Program Files\QGIS 2.99\apps\Python36\Scripts\pyrcc5.bat" -o resources_rc.py resources.qrc
I get this error :
Traceback (most recent call last):
File "C:\PROGRA~1\QGIS2~1.99\apps\Python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\PROGRA~1\QGIS2~1.99\apps\Python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\PROGRA~1\QGIS2~1.99\apps\Python36\lib\site-packages\PyQt5\pyrcc_main.py", line 21, in
from PyQt5.QtCore import PYQT_VERSION_STR, QDir, QFile
ImportError: DLL load failed: Specified module could not be found.
Answer
You need set PyQT5 environments. This is my scripts for compile QGIS 3 Plugins and have 3 complementary bats.
compile_ui.bat
@ECHO OFF
set OSGEO4W_ROOT=D:\OSGeo4W64
set PATH=%OSGEO4W_ROOT%\bin;%PATH%
set PATH=%PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
@echo off
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"
@echo off
path %OSGEO4W_ROOT%\apps\qgis-dev\bin;%OSGEO4W_ROOT%\apps\grass\grass-7.2.2\lib;%OSGEO4W_ROOT%\apps\grass\grass-7.2.2\bin;%PATH%
cd /d %~dp0
@ECHO ON
::Ui Compilation
call pyuic5 dialog.ui -o gui\generated\ui_dialog.py
::Resources
call pyrcc5 ui\resources.qrc -o gui\generated\resources_rc.py
@ECHO OFF
GOTO END
:ERROR
echo "Failed!"
set ERRORLEVEL=%ERRORLEVEL%
pause
:END
@ECHO ON
You only need change set OSGEO4W_ROOT=D:\OSGeo4W64
for set OSGEO4W_ROOT="C:\Program Files\QGIS 2.99"
, or something like that,
Try using this .bat
Note: this bat is in the same folder as the plugin
Note 2 : For import import resources_rc need this trick
call pyuic5 --import-from .gui.generated dialog.ui -o gui\generated\ui_dialog.py`
this path probably change in other plugin. pyuic5
@sigeal soluton for Note 2 :
call pyuic5 dockwidget_base.ui --from-imports -o dockwidget_base.py
I hope it helps
No comments:
Post a Comment