We have developed a few PyQGIS standalone applications that bring in PyQt5.Qtcore, PyQt5.QtGui, and qgis.core
to display map and do custom logics etc. The applications started with QGIS python 2.7 all the way to QGIS python 3.6, over time we found that it is getting increasingly difficult to get the libraries setup correctly and packaging the application.
Now, it is QGIS 3.16 LTR with Python 3.8, after upgrade QGIS, our apps stopped working. The QGIS installation structure changed a lot with this new version, to name a few things for example, apps/qt5/include
and apps/qt5/doc
directories are no longer there, and the following imports are no longer working:
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QApplication, QMainWindow, QUndoCommand, QUndoStack, QFileDialog, QVBoxLayout, QAction
from PyQt5.QtWidgets import QAbstractItemView, QMessageBox, QMenu, QInputDialog, QDockWidget
So, this brings up the question that does QGIS still intend to support standalone application development or should we abandon these apps and build plugins instead? We look forward to hearing a more definitive answer.