LLVM ERROR when loading EnMAP-Box 3.7 within conda environment on Ubuntu

Issue #620 closed
Daniel Scheffler created an issue

I just tried to set up the latest EnMAP-Box within a conda environment including EnPT using this environment file:

https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/blob/master/tests/gitlab_CI_docker/context/environment_enmapbox_enpt.yml

Installation runs through without any issues and creates the environment below. QGIS runs properly. However, when installing and activating the EnMAP-Box 3.7, QGIS crashes with:

(enmapbox_enpt) gfz-fe@geoms:~$ qgis
        - 'VirtualXPath'        [XML Path Language - XPath]
        - 'VirtualXPath'        [XML Path Language - XPath]
Warning: QXcbConnection: XCB error: 145 (Unknown), sequence: 179, resource id: 0, major code: 139 (Unknown), minor code: 20
        - 'VirtualXPath'        [XML Path Language - XPath]
Warning: Cannot open file ':/qps/ui/icons/speclib.svg', because: No such file or directory
Warning: Cannot open file ':/qps/ui/icons/speclib.svg', because: No such file or directory
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
QGIS died on signal 11Aborted

The first warning does not matter. But I am not sure what is the actual problem - the missing files or LLVM (which might be related to numba).

(enmapbox_enpt) gfz-fe@geoms:~$ conda list
# packages in environment at /home/gfz-fe/miniconda3/envs/enmapbox_enpt:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                      1_llvm    conda-forge
appdirs                   1.4.4              pyh9f0ad1d_0    conda-forge
argon2-cffi               20.1.0           py38h497a2fe_2    conda-forge
arosics                   1.2.5            py38h578d9bd_0    conda-forge
astropy                   4.2                      pypi_0    pypi
async_generator           1.10                       py_0    conda-forge
attrs                     20.3.0             pyhd3deb0d_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.1                      py_0    conda-forge
bleach                    3.3.0              pyh44b312d_0    conda-forge
blosc                     1.21.0               h9c3ff4c_0    conda-forge
bokeh                     2.2.3            py38h578d9bd_0    conda-forge
boost-cpp                 1.74.0               hc6e9bd1_2    conda-forge
branca                    0.4.2              pyhd8ed1ab_0    conda-forge
brotli                    1.0.9                h9c3ff4c_4    conda-forge
brotlipy                  0.7.0           py38h497a2fe_1001    conda-forge
brunsli                   0.1                  h9c3ff4c_0    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.17.1               h36c2ea0_0    conda-forge
ca-certificates           2020.12.5            ha878542_0    conda-forge
cached-property           1.5.1                      py_0    conda-forge
cachetools                4.2.1              pyhd8ed1ab_0    conda-forge
cairo                     1.16.0            h7979940_1007    conda-forge
cartopy                   0.18.0           py38h9b6dd9e_7    conda-forge
cerberus                  1.3.2                      py_0    conda-forge
certifi                   2020.12.5        py38h578d9bd_1    conda-forge
cffi                      1.14.4           py38ha65f79e_1    conda-forge
cfitsio                   3.470                hb418390_7    conda-forge
cftime                    1.4.1            py38h5c078b8_0    conda-forge
chardet                   4.0.0            py38h578d9bd_1    conda-forge
charls                    2.2.0                h9c3ff4c_0    conda-forge
click                     7.1.2              pyh9f0ad1d_0    conda-forge
click-plugins             1.1.1                      py_0    conda-forge
cligj                     0.7.1              pyhd8ed1ab_0    conda-forge
cloudpickle               1.6.0                      py_0    conda-forge
cmocean                   2.0                        py_3    conda-forge
colorcet                  2.0.6              pyhd8ed1ab_0    conda-forge
colorspacious             1.1.2              pyh24bf2e0_0    conda-forge
configobj                 5.0.6                      py_0    conda-forge
coverage                  5.4              py38h497a2fe_0    conda-forge
cryptography              3.3.1            py38h2b97feb_1    conda-forge
curl                      7.71.1               he644dc0_8    conda-forge
cycler                    0.10.0                     py_2    conda-forge
cytoolz                   0.11.0           py38h497a2fe_3    conda-forge
dask-core                 2021.1.1           pyhd8ed1ab_0    conda-forge
dbus                      1.13.6               hfdff14a_1    conda-forge
decorator                 4.4.2                      py_0    conda-forge
defusedxml                0.6.0                      py_0    conda-forge
dicttoxml                 1.7.4            py38h06a4308_1
dill                      0.3.3              pyhd8ed1ab_0    conda-forge
eccodes                   2.20.0               ha0e6eb6_0    conda-forge
ecmwf-api-client          1.6.1              pyhd3deb0d_0    conda-forge
enpt                      0.16.4             pyhd8ed1ab_0    conda-forge
enpt-enmapboxapp          0.4.3                    pypi_0    pypi
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
exiv2                     0.27.1               had08079_0    conda-forge
expat                     2.2.10               h9c3ff4c_0    conda-forge
fftw                      3.3.9           nompi_h74d3f13_100    conda-forge
filelock                  3.0.12             pyh9f0ad1d_0    conda-forge
fiona                     1.8.18           py38h37fbd03_0    conda-forge
folium                    0.11.0                     py_0    conda-forge
fontconfig                2.13.1            hba837de_1004    conda-forge
freetype                  2.10.4               h0708190_1    conda-forge
freexl                    1.0.5             h516909a_1002    conda-forge
future                    0.18.2           py38h578d9bd_3    conda-forge
gdal                      3.1.4            py38h25844d8_3    conda-forge
gdown                     3.12.2             pyh9f0ad1d_0    conda-forge
geoarray                  0.10.8           py38h578d9bd_0    conda-forge
geojson                   2.5.0                      py_0    conda-forge
geopandas                 0.8.2              pyhd8ed1ab_0    conda-forge
geos                      3.8.1                he1b5a44_0    conda-forge
geotiff                   1.6.0                h5d11630_3    conda-forge
gettext                   0.19.8.1          h0b5b191_1005    conda-forge
giflib                    5.2.1                h36c2ea0_2    conda-forge
glib                      2.66.5               hcd2ae1e_2    conda-forge
glib-tools                2.66.5               hcd2ae1e_2    conda-forge
glymur                    0.9.3              pyhd8ed1ab_0    conda-forge
gmp                       6.2.1                h58526e2_0    conda-forge
gmpy2                     2.1.0b1          py38hd744826_1    conda-forge
gsl                       2.6                  he838d99_2    conda-forge
gst-plugins-base          1.14.5               h0935bb2_2    conda-forge
gstreamer                 1.18.3               h3560a44_0    conda-forge
h5py                      3.1.0           nompi_py38hafa665b_100    conda-forge
hdf4                      4.2.13            h10796ff_1004    conda-forge
hdf5                      1.10.6          nompi_h6a2412b_1114    conda-forge
holoviews                 1.14.1             pyhd3deb0d_0    conda-forge
httplib2                  0.18.1             pyh9f0ad1d_0    conda-forge
icu                       68.1                 h58526e2_0    conda-forge
idna                      2.10               pyh9f0ad1d_0    conda-forge
imagecodecs               2021.1.11        py38h6082773_1    conda-forge
imageio                   2.9.0                      py_0    conda-forge
importlib-metadata        3.4.0            py38h578d9bd_0    conda-forge
importlib_metadata        3.4.0                hd8ed1ab_0    conda-forge
importlib_resources       5.1.0            py38h578d9bd_0    conda-forge
ipykernel                 5.4.2            py38h81c977d_0    conda-forge
ipython                   7.20.0           py38h81c977d_1    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
iso8601                   0.1.13             pyh9f0ad1d_0    conda-forge
jasper                    1.900.1           h07fcdf6_1006    conda-forge
jedi                      0.18.0           py38h578d9bd_2    conda-forge
jinja2                    2.11.3             pyh44b312d_0    conda-forge
joblib                    1.0.0              pyhd8ed1ab_0    conda-forge
jpeg                      9d                   h36c2ea0_0    conda-forge
jsmin                     2.2.2           py38h32f6830_1002    conda-forge
json-c                    0.13.1            hbfbb72e_1002    conda-forge
jsonschema                3.2.0                      py_2    conda-forge
jupyter_client            6.1.11             pyhd8ed1ab_1    conda-forge
jupyter_core              4.7.1            py38h578d9bd_0    conda-forge
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
jxrlib                    1.1                  h7f98852_2    conda-forge
kealib                    1.4.14               h0042707_0    conda-forge
kiwisolver                1.3.1            py38h1fd1430_1    conda-forge
krb5                      1.17.2               h926e7f8_0    conda-forge
lcms2                     2.11                 hcbb858e_1    conda-forge
ld_impl_linux-64          2.35.1               hea4e1c9_2    conda-forge
lerc                      2.2.1                h9c3ff4c_0    conda-forge
libaec                    1.0.4                h9c3ff4c_1    conda-forge
libblas                   3.9.0                8_openblas    conda-forge
libcblas                  3.9.0                8_openblas    conda-forge
libclang                  11.0.1          default_ha53f305_1    conda-forge
libcurl                   7.71.1               hcdd3856_8    conda-forge
libdap4                   3.20.6               h1d1bd15_1    conda-forge
libdeflate                1.7                  h7f98852_5    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libevent                  2.1.10               hcdb4288_3    conda-forge
libffi                    3.3                  h58526e2_2    conda-forge
libgcc-ng                 9.3.0               h2828fa1_18    conda-forge
libgdal                   3.1.4                h96b6e7a_3    conda-forge
libgfortran-ng            9.3.0               hff62375_18    conda-forge
libgfortran5              9.3.0               hff62375_18    conda-forge
libglib                   2.66.5               h164308a_2    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
libkml                    1.3.0             h74f7ee3_1012    conda-forge
liblapack                 3.9.0                8_openblas    conda-forge
libllvm10                 10.0.1               he513fc3_3    conda-forge
libllvm11                 11.0.1               hf817b99_0    conda-forge
libnetcdf                 4.7.4           nompi_h56d31a8_107    conda-forge
libnghttp2                1.43.0               h812cca2_0    conda-forge
libopenblas               0.3.12          pthreads_h4812303_1    conda-forge
libpng                    1.6.37               h21135ba_2    conda-forge
libpq                     12.3                 h255efa7_3    conda-forge
libprotobuf               3.14.0               h780b84a_0    conda-forge
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libspatialindex           1.9.3                he1b5a44_3    conda-forge
libspatialite             5.0.0                heaf302f_0    conda-forge
libssh2                   1.9.0                hab1572f_5    conda-forge
libstdcxx-ng              9.3.0               h6de172a_18    conda-forge
libtiff                   4.2.0                hdc55705_0    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libwebp                   1.2.0                h3452ae3_0    conda-forge
libwebp-base              1.2.0                h7f98852_0    conda-forge
libxcb                    1.13              h7f98852_1003    conda-forge
libxkbcommon              1.0.3                he3ba5ed_0    conda-forge
libxml2                   2.9.10               h72842e0_3    conda-forge
libxslt                   1.1.33               h15afd5d_2    conda-forge
libzip                    1.7.3                h4de3113_0    conda-forge
libzopfli                 1.0.3                h9c3ff4c_0    conda-forge
llvm-openmp               11.0.1               h4bd325d_0    conda-forge
llvmlite                  0.35.0           py38h4630a5e_1    conda-forge
lxml                      4.6.2            py38hf1fe3a4_1    conda-forge
lz4-c                     1.9.3                h9c3ff4c_0    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
markdown                  3.3.3              pyh9f0ad1d_0    conda-forge
markupsafe                1.1.1            py38h497a2fe_3    conda-forge
matplotlib                3.3.4            py38h578d9bd_0    conda-forge
matplotlib-base           3.3.4            py38h0efea84_0    conda-forge
mistune                   0.8.4           py38h497a2fe_1003    conda-forge
mock                      4.0.3            py38h578d9bd_1    conda-forge
mpc                       1.1.0             h04dde30_1009    conda-forge
mpfr                      4.0.2                he80fd80_1    conda-forge
mpld3                     0.5.2              pyhd3deb0d_0    conda-forge
mpmath                    1.1.0                      py_0    conda-forge
munch                     2.5.0                      py_0    conda-forge
mvgavg                    0.1.0              pyh9f0ad1d_0    conda-forge
mysql-common              8.0.22               ha770c72_3    conda-forge
mysql-libs                8.0.22               h935591d_3    conda-forge
natsort                   7.1.1              pyhd8ed1ab_0    conda-forge
nbclient                  0.5.1                      py_0    conda-forge
nbconvert                 6.0.7            py38h578d9bd_3    conda-forge
nbformat                  5.1.2              pyhd8ed1ab_1    conda-forge
ncurses                   6.2                  h58526e2_4    conda-forge
nest-asyncio              1.4.3              pyhd8ed1ab_0    conda-forge
netcdf4                   1.5.5.1         nompi_py38h1cdf482_101    conda-forge
networkx                  2.5                        py_0    conda-forge
nose2                     0.9.2                      py_0    conda-forge
notebook                  6.2.0            py38h578d9bd_0    conda-forge
nspr                      4.29                 h9c3ff4c_1    conda-forge
nss                       3.61                 hb5efdd6_0    conda-forge
numba                     0.52.0           py38h51da96c_0    conda-forge
numexpr                   2.7.2            py38h51da96c_0    conda-forge
numpy                     1.20.0           py38h18fd61f_0    conda-forge
numpy-indexed             0.3.5                      py_1    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                hf7af979_0    conda-forge
openssl                   1.1.1i               h7f98852_0    conda-forge
owslib                    0.22.0             pyhd8ed1ab_0    conda-forge
packaging                 20.8               pyhd3deb0d_0    conda-forge
pandas                    1.2.1            py38h51da96c_0    conda-forge
pandoc                    2.11.4               h7f98852_0    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
panel                     0.10.3             pyhd8ed1ab_0    conda-forge
param                     1.10.1             pyhd3deb0d_0    conda-forge
parso                     0.8.1              pyhd8ed1ab_0    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
pebble                    4.6.0              pyhd8ed1ab_0    conda-forge
pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.1.0            py38h357d4e7_1    conda-forge
pint                      0.16.1                     py_0    conda-forge
pip                       21.0.1             pyhd8ed1ab_0    conda-forge
pixman                    0.40.0               h36c2ea0_0    conda-forge
plotly                    4.14.3             pyh44b312d_0    conda-forge
pooch                     1.3.0              pyhd8ed1ab_0    conda-forge
poppler                   0.89.0               h2de54a5_5    conda-forge
poppler-data              0.4.10                        0    conda-forge
postgresql                12.3                 hc2f5b80_3    conda-forge
proj                      7.1.1                h966b41f_3    conda-forge
prometheus_client         0.9.0              pyhd3deb0d_0    conda-forge
prompt-toolkit            3.0.14             pyha770c72_0    conda-forge
psutil                    5.8.0            py38h497a2fe_1    conda-forge
psycopg2                  2.8.6            py38h2b97feb_1    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
py-tools-ds               0.16.7           py38h578d9bd_0    conda-forge
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pyct                      0.4.6                      py_0    conda-forge
pyct-core                 0.4.6                      py_0    conda-forge
pyepsg                    0.4.0                      py_0    conda-forge
pyerfa                    1.7.1.1                  pypi_0    pypi
pyfftw                    0.12.0           py38h8e28c27_2    conda-forge
pygments                  2.7.4              pyhd8ed1ab_0    conda-forge
pygrib                    2.1.3            py38hf021e48_0    conda-forge
pykdtree                  1.3.4            py38h0b5ebd8_0    conda-forge
pykrige                   1.5.1            py38h25fe258_1    conda-forge
pyopengl                  3.1.5                      py_0    conda-forge
pyopenssl                 20.0.1             pyhd8ed1ab_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyprind                   2.11.2          py38h32f6830_1001    conda-forge
pyproj                    2.6.1.post1      py38h56787f0_3    conda-forge
pyqt                      5.12.3           py38h578d9bd_7    conda-forge
pyqt-impl                 5.12.3           py38h7400c14_7    conda-forge
pyqt5-sip                 4.19.18          py38h709712a_7    conda-forge
pyqtchart                 5.12             py38h7400c14_7    conda-forge
pyqtwebengine             5.12.1           py38h7400c14_7    conda-forge
pyqtwebkit                5.212            py38hd669dca_1    conda-forge
pyresample                1.17.0           py38h0ef3d22_0    conda-forge
pyrsistent                0.17.3           py38h497a2fe_2    conda-forge
pyrsr                     0.4.2              pyhd8ed1ab_0    conda-forge
pyshp                     2.1.3              pyh44b312d_0    conda-forge
pysocks                   1.7.1            py38h578d9bd_3    conda-forge
pytables                  3.6.1            py38hc386592_3    conda-forge
python                    3.8.6           hffdb5ce_5_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.8                      1_cp38    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
pyviz_comms               2.0.1              pyhd3deb0d_0    conda-forge
pywavelets                1.1.1            py38h5c078b8_3    conda-forge
pyyaml                    5.4.1            py38h497a2fe_0    conda-forge
pyzmq                     22.0.1           py38h3d7ac18_0    conda-forge
qca                       2.2.1                h73816c6_3    conda-forge
qgis                      3.16.3           py38h74aa261_4    conda-forge
qjson                     0.9.0             h73816c6_1006    conda-forge
qscintilla2               2.11.2           py38h63a9b5b_4    conda-forge
qt                        5.12.9               h9d6b050_2    conda-forge
qtkeychain                0.12.0               h2264404_0    conda-forge
qtlocation                5.12.9               he1b5a44_0    conda-forge
qtserialport              5.9.8                h73816c6_1    conda-forge
qtwebkit                  5.212                h8f65c2e_1    conda-forge
qwt                       6.1.5                h73816c6_0    conda-forge
qwtpolar                  1.1.1                h73816c6_7    conda-forge
readline                  8.0                  he28a2e2_2    conda-forge
requests                  2.25.1             pyhd3deb0d_0    conda-forge
retrying                  1.3.3                      py_2    conda-forge
rtree                     0.9.7            py38h02d302b_1    conda-forge
scikit-image              0.18.1           py38h51da96c_0    conda-forge
scikit-learn              0.24.0           py38h658cfdd_0    conda-forge
scipy                     1.6.0            py38hb2138dd_0    conda-forge
send2trash                1.5.0                      py_0    conda-forge
sensormapgeo              0.4.7            py38h578d9bd_0    conda-forge
setuptools                49.6.0           py38h578d9bd_3    conda-forge
shapely                   1.7.1            py38ha11d057_1    conda-forge
sicor                     0.15.5             pyh1bb2064_0    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
snappy                    1.1.8                he1b5a44_3    conda-forge
spectral                  0.22.1             pyh9f0ad1d_0    conda-forge
sqlite                    3.34.0               h74cdb3f_0    conda-forge
sympy                     1.7.1            py38h578d9bd_1    conda-forge
terminado                 0.9.2            py38h578d9bd_0    conda-forge
testpath                  0.4.4                      py_0    conda-forge
threadpoolctl             2.1.0              pyh5ca1d4c_0    conda-forge
tifffile                  2021.2.1           pyhd8ed1ab_0    conda-forge
tiledb                    2.2.3                h91fcb0e_0    conda-forge
tk                        8.6.10               h21135ba_1    conda-forge
toolz                     0.11.1                     py_0    conda-forge
tornado                   6.1              py38h497a2fe_1    conda-forge
tqdm                      4.56.0             pyhd8ed1ab_0    conda-forge
traitlets                 5.0.5                      py_0    conda-forge
typing_extensions         3.7.4.3                    py_0    conda-forge
tzcode                    2021a                h7f98852_0    conda-forge
urllib3                   1.26.3             pyhd8ed1ab_0    conda-forge
utm                       0.6.0              pyh9f0ad1d_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                      py_1    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
xerces-c                  3.2.3                h9d8b166_2    conda-forge
xlrd                      2.0.1              pyhd8ed1ab_3    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h516909a_0    conda-forge
xorg-libsm                1.2.3             h84519dc_1000    conda-forge
xorg-libx11               1.6.12               h516909a_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h516909a_0    conda-forge
xorg-libxrender           0.9.10            h516909a_1002    conda-forge
xorg-renderproto          0.11.1            h14c3975_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
yaml                      0.2.5                h516909a_0    conda-forge
zeromq                    4.3.4                h9c3ff4c_0    conda-forge
zfp                       0.5.5                h9c3ff4c_4    conda-forge
zipp                      3.4.0                      py_0    conda-forge
zlib                      1.2.11            h516909a_1010    conda-forge
zstd                      1.4.8                ha95c52a_1    conda-forge

Comments (18)

  1. Daniel Scheffler reporter

    No, this seems to be the issue. Importing numba crashes QGIS with the same error.

    Nice, that it works on Windows. I guess I have to adapt the enpt_enmapbox code a bit to make it work in case EnPT is installed within the same env like QGIS.

  2. Daniel Scheffler reporter

    I just reinstalled it with the latest package versions. QGIS still crashes on Linux (Ubuntu 20.04) when trying to activate the EnMAP-Box plugin in the plugin manager. But it gives a different output now:

    (enmapbox_enpt) gfz-fe@geoms:~$ qgis
    Warning: QXcbConnection: XCB error: 145 (Unknown), sequence: 179, resource id: 0, major code: 139 (Unknown), minor code: 20
    load /home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/enmapboxresources_rc.py
    load /home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/coreapps/enmapboxapplications/ressources_rc.py
    load /home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/externals/qps/qpsresources_rc.py
    : CommandLine Error: Option 'help-list' registered more than once!
    LLVM ERROR: inconsistency in registered CommandLine options
    QGIS died on signal 11Aborted
    

  3. Daniel Scheffler reporter

    Ok, the problem seems to come from numba. It is used by SICOR which is indirectly installed with EnPT. However, SICOR seems to use numba only for some interpolation functions, mainly related to the atmospheric correction of multispectral data. So, possibly it is not needed for EnMAP data at all. Anyway, I tried to mock the numba import in the QGIS Python console by:

    from mock import MagicMock()
    sys.modules['numba'] = MagicMock()
    

    However, the EnMAP-Box still cannot be activated - but it seems to be related to a dependency check:

    Couldn't load plugin 'enmapboxplugin' due to an error when calling its classFactory() method 
    
    ValueError: numba.__spec__ is not set 
    Traceback (most recent call last):
      File "/home/gfz-fe/miniconda3/envs/enmapbox_enpt_pinned/share/qgis/python/qgis/utils.py", line 334, in _startPlugin
        plugins[packageName] = package.classFactory(iface)
      File "/home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/__init__.py", line 47, in classFactory
        raise ex
      File "/home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/__init__.py", line 43, in classFactory
        plugin = EnMAPBoxPlugin(iface)
      File "/home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/enmapboxplugin.py", line 48, in __init__
        self.initialDependencyCheck()
      File "/home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/enmapboxplugin.py", line 63, in initialDependencyCheck
        missing = [p for p in requiredPackages() if not p.isInstalled()]
      File "/home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/enmapboxplugin.py", line 63, in 
        missing = [p for p in requiredPackages() if not p.isInstalled()]
      File "/home/gfz-fe/.local/share/QGIS/QGIS3/profiles/default/python/plugins/enmapboxplugin/enmapbox/dependencycheck.py", line 216, in isInstalled
        spam_spec = importlib.util.find_spec(self.pyPkgName)
      File "/home/gfz-fe/miniconda3/envs/enmapbox_enpt_pinned/lib/python3.9/importlib/util.py", line 111, in find_spec
        raise ValueError('{}.__spec__ is not set'.format(name)) from None
    ValueError: numba.__spec__ is not set
    

    I don´t have much experience with mock but I guess it might be possible to simply work around the import using mock. Note that sicor has some “from numba import jit” lines.

    Maybe that helps..

  4. Daniel Scheffler reporter

    Yes, using mock here could only be a temporary solution to disable numba for SICOR and EnSoMap under Linux to make things work for now. But I think especially EnSoMap would be severely slower without numba.

    I guess the actual source of the LLVM error is related to an issue in the current numba conda-forge recipe in the numba-feedstock. Somewhere here: https://github.com/conda-forge/numba-feedstock/blob/9796deb403ad0986e959f44f9c62d8e81d961f3c/recipe/meta.yaml#L45. But I don´t know enough about how LLVM is linked to numba and how things work there. However, if we could narrow the issue down to a minimal set of packages (e.g., only qgis and numba) that reproduce this issue, than we could have a chance to get a fix from the numba-feedstock maintainers when we open an issue there.

    We can also try to use another conda channel only for numba but from my experience, this often causes more problems than it solves because individual channels are often not compatible to each other.

  5. Daniel Scheffler reporter

    I just reproduced the issue with a minimal environment:

    mamba create -n qgisnumba -c conda-forge qgis numba
    

    When starting qgis from that environment and importing numba on the QGIS Python console, QGIS crashes with:

    (qgisnumba) gfz-fe@geoms:~/scheffler/python/EnPT$ qgis
    Warning: QXcbConnection: XCB error: 145 (Unknown), sequence: 179, resource id: 0, major code: 139 (Unknown), minor code: 20
    : CommandLine Error: Option 'help-list' registered more than once!
    LLVM ERROR: inconsistency in registered CommandLine options
    QGIS died on signal 11Aborted
    

    I will open an issue in the numba-feedstock repository.

  6. Niklas Bohn

    I just tested the same procedures on a macOS Big Sur Version 11.2.3 and everything works fine!

    I run QGIS from the terminal in the conda environment created with the *.yml file https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/blob/master/tests/gitlab_CI_docker/context/environment_enmapbox_enpt.yml, installed the EnMAP-Box plugin, activated the box, and finally, also imported numba on the QGIS Python console… No errors, no crashes. Seems to really be an issue on Linux only.

  7. Daniel Scheffler reporter

    After some tests together with the llvmlite-feedstock maintainers here, it turned out that the LLVM error was caused a known mesa bug (old graphics driver) on that Ubuntu server. I upgraded all packages and everything works fine now!

    That means that we now have a fully working conda environment including QGIS, the EnMAP-Box and EnPT.

  8. Log in to comment