kartoza / docker-qgis-desktop

A docker project that will run your QGIS desktop app inside a docker container
GNU General Public License v2.0
98 stars 46 forks source link

Problem with (K)ubuntu 18.04 #34

Open alastairdb opened 6 years ago

alastairdb commented 6 years ago

The default Ubuntu 18.04 installation of qgis runs into problems. The error message is:

QH6249 qh_lib_check: Incorrect qhull library called.  Size of qhT for caller is 8184, but for library is 2896.
QH6255 qh_lib_check: Cannot continue.  Library 'qhull 7.2.0 (2015.2 2016/01/18)' uses a dynamic qhT via qh_QHpointer (e.g., qhull_p.so)

An entry on Stackexchange indicates that this is due to a Scipy version mismatch:

Got the same problem on Linux Mint and finally fixed it.

The problem is that you've installed a few python libraries and one of them is a dependency of QGIS.

QGIS ~2.18 works fine with Scipy 0.17, and after upgrade this library to the newest version you have 0.19.

QGIS won't load with 0.19 because libqhull error.

All you need to do is downgrade, simply:

pip install scipy==0.17
And everything should be ok. You can also try with newer version but I'm not sure which one is good. I downgraded to 0.11 and it works form me again.

The standard Ubuntu 18.04 version of Scipy is 0.19. I did not want to uninstall that , so I thought Docker might offer a solution. Unfortunately, run-qgis-2.18ltr-in-docker.sh results in the same problem with the qhull library. It would appear that the Dockerfile is picking up the standard Ubuntu 18.04 version of Scipy.

I eventually solved the problem outside of Docker by using a Python 2 virtual environment (with pipenv) which picked up all the global site packages (including SIP). Then I added Scipy 17.0 to the virtual environment to call pipenv run qgis to launch qgis. You might need to add a similar solution to the Dockerfiles for qgis 2.XX to get them to run on Ubuntu 18.04.

timlinux commented 6 years ago

Thanks for the heads-up @alastairdb - I will try to do that

timlinux commented 6 years ago

@alastairdb its a bit strange in that QGIS 2.18.20 (which I just published).

timlinux@mountain:~/docker-qgis-desktop/2.18⟫ docker run -ti --rm kartoza/qgis-desktop:LTR /bin/bash
root@06ed9fb8a16f:/# pip freeze
certifi==2018.4.16
chardet==3.0.4
GDAL==2.2.2
idna==2.6
Jinja2==2.10
MarkupSafe==1.0
numpy==1.11.0
psycopg2==2.7.4
Pygments==2.2.0
pyspatialite==3.0.1
requests==2.18.4
urllib3==1.22

There is no scipy listed there so I am wondering how that can be the cause of the issue?

alastairdb commented 6 years ago

I don't really know. But the following is the trace I get when I start QGIS 2.18.20 on my Kubuntu 18.04 system:

$ xhost +
access control disabled, clients can connect from any host
$ docker run --name="qgis-desktop-ltr"  -i -t -v ${HOME}:/home/${USER}  -v /tmp/.X11-unix:/tmp/.X11-unix  -e DISPLAY=unix$DISPLAY  --net=host kartoza/qgis-desktop:LTR 
Warning: Object::connect: No such signal QgsMergedBookmarksTableModel::&QgsMergedBookmarksTableModel::selectItem( const QModelIndex &index )
Stacktrace (piped through c++filt):
/usr/bin/qgis[0x40bbb2]
/usr/bin/qgis[0x40bff2]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x2f)[0x7f84ab1e1e9f]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x70371)[0x7f84ab1e2371]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qWarning(char const*, ...)+0xa1)[0x7f84ab1e25e1]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x19ce46)[0x7f84ab30ee46]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType)+0x4de)[0x7f84ab313a5e]
/usr/lib/libqgis_app.so.2.18.17(QgsBookmarks::QgsBookmarks(QWidget*)+0xc20)[0x7f84acf3afb0]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::QgisApp(QSplashScreen*, bool, bool, QWidget*, QFlags<Qt::WindowType>)+0x131e)[0x7f84acec841e]
/usr/bin/qgis[0x4067a8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f84a9b3c830]
/usr/bin/qgis(_start+0x29)[0x40b779]
Warning: Object::connect:  (receiver name: 'QgsBookmarksBase')
Stacktrace (piped through c++filt):
/usr/bin/qgis[0x40bbb2]
/usr/bin/qgis[0x40bff2]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x2f)[0x7f84ab1e1e9f]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x70371)[0x7f84ab1e2371]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qWarning(char const*, ...)+0xa1)[0x7f84ab1e25e1]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x19d6b3)[0x7f84ab30f6b3]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType)+0x4f0)[0x7f84ab313a70]
/usr/lib/libqgis_app.so.2.18.17(QgsBookmarks::QgsBookmarks(QWidget*)+0xc20)[0x7f84acf3afb0]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::QgisApp(QSplashScreen*, bool, bool, QWidget*, QFlags<Qt::WindowType>)+0x131e)[0x7f84acec841e]
/usr/bin/qgis[0x4067a8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f84a9b3c830]
/usr/bin/qgis(_start+0x29)[0x40b779]
Warning: QCss::Parser - Failed to load file  "/style.qss" 
Stacktrace (piped through c++filt):
/usr/bin/qgis[0x40bbb2]
/usr/bin/qgis[0x40bff2]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x2f)[0x7f84ab1e1e9f]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QCss::Parser::init(QString const&, bool)+0x548)[0x7f84aa9273f8]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x504b54)[0x7f84aa982b54]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x50a07f)[0x7f84aa98807f]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x50df92)[0x7f84aa98bf92]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x512121)[0x7f84aa990121]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QWidgetPrivate::setStyle_helper(QStyle*, bool, bool)+0x11d)[0x7f84aa68e56d]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QWidgetPrivate::inheritStyle()+0x1ab)[0x7f84aa68e97b]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QApplication::setStyle(QStyle*)+0x1df)[0x7f84aa64685f]
/usr/lib/libqgis_core.so.2.18.17(QgsApplication::setUITheme(QString const&)+0x299)[0x7f84ab9cd719]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::setTheme(QString const&)+0x30)[0x7f84ace79a00]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::readSettings()+0xb4)[0x7f84ace99464]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::functionProfile(void (QgisApp::*)(), QgisApp*, QString)+0x32)[0x7f84ace8cb12]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::QgisApp(QSplashScreen*, bool, bool, QWidget*, QFlags<Qt::WindowType>)+0x1711)[0x7f84acec8811]
/usr/bin/qgis[0x4067a8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f84a9b3c830]
/usr/bin/qgis(_start+0x29)[0x40b779]
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
Warning: QFileSystemWatcher: failed to add paths: /home/albu01/.qgis2//project_templates
Stacktrace (piped through c++filt):
/usr/bin/qgis[0x40bbb2]
/usr/bin/qgis[0x40bff2]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x2f)[0x7f84ab1e1e9f]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x70371)[0x7f84ab1e2371]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qWarning(char const*, ...)+0xa1)[0x7f84ab1e25e1]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QFileSystemWatcher::addPaths(QStringList const&)+0x1a3)[0x7f84ab2cb663]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QFileSystemWatcher::addPath(QString const&)+0x4a)[0x7f84ab2cc35a]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::QgisApp(QSplashScreen*, bool, bool, QWidget*, QFlags<Qt::WindowType>)+0x1952)[0x7f84acec8a52]
/usr/bin/qgis[0x4067a8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f84a9b3c830]
/usr/bin/qgis(_start+0x29)[0x40b779]
Warning: QLayout: Attempting to add QLayout "" to QgsPanelWidgetStack "mWidgetStack", which already has a layout
Stacktrace (piped through c++filt):
/usr/bin/qgis[0x40bbb2]
/usr/bin/qgis[0x40bff2]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x2f)[0x7f84ab1e1e9f]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x70371)[0x7f84ab1e2371]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qWarning(char const*, ...)+0xa1)[0x7f84ab1e25e1]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QLayout::QLayout(QLayoutPrivate&, QLayout*, QWidget*)+0x150)[0x7f84aa670910]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QBoxLayout::QBoxLayout(QBoxLayout::Direction, QWidget*)+0xcb)[0x7f84aa64f72b]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QVBoxLayout::QVBoxLayout(QWidget*)+0x11)[0x7f84aa650221]
/usr/lib/libqgis_app.so.2.18.17(+0x35150e)[0x7f84ad07950e]
/usr/lib/libqgis_app.so.2.18.17(QgsLayerStylingWidget::QgsLayerStylingWidget(QgsMapCanvas*, QList<QgsMapLayerConfigWidgetFactory*>, QWidget*)+0xf0)[0x7f84ad077a10]
/usr/lib/libqgis_app.so.2.18.17(QgisApp::QgisApp(QSplashScreen*, bool, bool, QWidget*, QFlags<Qt::WindowType>)+0x1b34)[0x7f84acec8c34]
/usr/bin/qgis[0x4067a8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f84a9b3c830]
/usr/bin/qgis(_start+0x29)[0x40b779]
QH6248 qh_lib_check: Incorrect qhull library called.  Caller uses reentrant Qhull while library is non-reentrant
QH6249 qh_lib_check: Incorrect qhull library called.  Size of qhT for caller is 8184, but for library is 2896.
QH6255 qh_lib_check: Cannot continue.  Library 'qhull 7.2.0 (2015.2 2016/01/18)' uses a dynamic qhT via qh_QHpointer (e.g., qhull_p.so)
 $