qgis / QGIS-Mac-Packager

Scripts for Official QGIS MacOS Packages
https://www.qgis.org
GNU General Public License v2.0
54 stars 21 forks source link

Symbol not found: _curl_mime_addpart with GDAL merge #111

Closed PeterPetrik closed 3 years ago

PeterPetrik commented 3 years ago

I use the latest Version of QGIS in German on Mac OS 10.14.6 and wanted to merge some 100 .asc files. I could load them into QGIS, but when merging with GDAL the following error occurred and no new layer was produced. I tried to install GDAL3.3 and python 3.9 externaly, but it seems QGIS doesn't makes use of them. My solution was to use an old installation of QGIS 3.10 on Mac OS 10.13, where evything worked fine. Hope this helps to improve next versions.

cc @stinanickel @gioman

132260_2633500_1257000.asc" "/Users/dt/Desktop/PROJEKT ERGOLZ/DTM itingen bis ormalingen 5m/132260_2633500_1257500.asc" "/Users/dt/Desktop/PROJEKT ERGOLZ/DTM itingen bis ormalingen 5m/132260_2633500_1258000.asc" "/Users/dt/Desktop/PROJEKT ERGOLZ/DTM itingen bis ormalingen 5m/132260_2633500_1258500.asc"
2021-02-07T00:11:16 INFO GDAL execution console output
Traceback (most recent call last):

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/__init__.py", line 18, in swig_import_helper

          return importlib.import_module(mname)

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/importlib/__init__.py", line 127, in import_module

          return _bootstrap._gcd_import(name[level:], package, level)

          File "", line 1006, in _gcd_import

          File "", line 983, in _find_and_load

          File "", line 967, in _find_and_load_unlocked

          File "", line 670, in _load_unlocked

          File "", line 583, in module_from_spec

          File "", line 1043, in create_module

          File "", line 219, in _call_with_frames_removed

         ImportError: dlopen(/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/_gdal.cpython-37m-darwin.so, 2): Symbol not found: _curl_mime_addpart

          Referenced from: /Applications/QGIS.app/Contents/MacOS/bin/../lib/libgdal.27.dylib

          Expected in: /usr/lib/libcurl.4.dylib

          in /Applications/QGIS.app/Contents/MacOS/bin/../lib/libgdal.27.dylib

         During handling of the above exception, another exception occurred:

         Traceback (most recent call last):

          File "/Applications/QGIS.app/Contents/MacOS/bin/gdal_retile.py", line 4, in 

          __import__('pkg_resources').run_script('GDAL==3.1.2', 'gdal_retile.py')

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/__init__.py", line 667, in run_script

          self.require(requires)[0].run_script(script_name, ns)

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1464, in run_script

          exec(code, namespace, namespace)

          File "/Applications/QGIS.app/Contents/Resources/python/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/EGG-INFO/scripts/gdal_retile.py", line 36, in 

          from osgeo import gdal

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/__init__.py", line 32, in 

          _gdal = swig_import_helper()

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/__init__.py", line 31, in swig_import_helper

          return importlib.import_module('_gdal')

          File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/importlib/__init__.py", line 127, in import_module

          return _bootstrap._gcd_import(name[level:], package, level)

         ModuleNotFoundError: No module named '_gdal'
PeterPetrik commented 3 years ago

@stinanickel can you please test with latest nightly to check if it is present there? https://qgis.org/downloads/macos/nightly/qgis_nightly_master_20210207_122751.dmg

thanks

PeterPetrik commented 3 years ago

duplicate of https://github.com/qgis/QGIS-Mac-Packager/issues/102

stinanickel commented 3 years ago

I had just time for a first short try, that is what QGIS returned:

QGIS-Version: 3.17.0-Master

QGIS-Codeversion: fb0ace3e64

Qt-Version: 5.14.2

GDAL-Version: 3.1.2

GEOS-Version: 3.8.1-CAPI-1.13.3

PROJ-Version: Rel. 6.3.2, May 1st, 2020

PDAL-Version: 2.2.0 (git-version: Release)

Verarbeite Algorithmus…

Algorithmus Verschmelzen startet…

Input parameters:

{ 'DATA_TYPE' : 5, 'EXTRA' : '', 'INPUT' : ['/Users/dt/Desktop/PROJEKT
ERGOLZ/DTM/132260_2625000_1256000.asc','/Users/dt/Desktop/PROJEKT
ERGOLZ/DTM/132260_2625000_1256500.asc','/Users/dt/Desktop/PROJEKT
ERGOLZ/DTM/132260_2633500_1258000.asc','/Users/dt/Desktop/PROJEKT
ERGOLZ/DTM/132260_2633500_1258500.asc'], 'NODATA_INPUT' : None,
'NODATA_OUTPUT' : None, 'OPTIONS' : '', 'OUTPUT' :
'/Users/dt/Desktop/PROJEKT ERGOLZ/test122.asc', 'PCT' : False, 'SEPARATE' :
False }

GDAL-Befehl:

gdal_merge.py -ot Float32 -of AAIGrid -o "/Users/dt/Desktop/PROJEKT
ERGOLZ/test122.asc" --optfile
/private/var/folders/rk/3083m9cj0k17bxfcjj6652ph0000gn/T/processing_KekNXU/7b6aec1870ee420d9836abb015a83ba1/mergeInputFiles.txt

GDAL-Befehlsausgaben:

Traceback (most recent call last):
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/__init__.py",
line 18, in swig_import_helper
return importlib.import_module(mname)
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/importlib/__init__.py",
line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1043, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError:
dlopen(/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/_
gdal.cpython-37m-darwin.so, 2): Symbol not found: _curl_mime_addpart
Referenced from:
/Applications/QGIS-Dev.app/Contents/MacOS/bin/../lib/libgdal.27.dylib
Expected in: /usr/lib/libcurl.4.dylib
in /Applications/QGIS-Dev.app/Contents/MacOS/bin/../lib/libgdal.27.dylib

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Applications/QGIS-Dev.app/Contents/MacOS/bin/gdal_merge.py", line 4,
in <module>
__import__('pkg_resources').run_script('GDAL==3.1.2', 'gdal_merge.py')
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/__init__.py",
line 667, in run_script
self.require(requires)[0].run_script(script_name, ns)
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/__init__.py",
line 1464, in run_script
exec(code, namespace, namespace)
File
"/Applications/QGIS-Dev.app/Contents/Resources/python/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/EGG-INFO/scripts/gdal_merge.py",
line 38, in <module>
from osgeo import gdal
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/__init__.py",
line 32, in <module>
_gdal = swig_import_helper()
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/__init__.py",
line 31, in swig_import_helper
return importlib.import_module('_gdal')
File
"/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/importlib/__init__.py",
line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_gdal'

Prozeß lieferte Fehlercode 1

Execution completed in 0.31 seconds

Results:

{'OUTPUT': '/Users/dt/Desktop/PROJEKT ERGOLZ/test122.asc'}

EDIT by stinanickel: Tried with only 20 layers, still same error...

PeterPetrik commented 3 years ago

We are using the system iconv and libcurl libraries, but it looks like on some systems it is not present in the /usr/lib/* folder

frchalaoux commented 3 years ago

libcurl.4.dylib is not missing in /usr/lib of my macos. Should I try to install a new version of libcurl with homebrew or other in an other PATH ?

PeterPetrik commented 3 years ago

i think the curl version you have is not the same as it is on the build server where we package QGIS. solution is to package it with QGIS.app. Working on it (hope I have something to test this week)

frchalaoux commented 3 years ago

Thanks a lot Peter !

casandra9 commented 3 years ago

gdal_merge.py -ot UInt16 -of GTiff -o /Users/xxxxxx/Documents/_bc3d/test.tif --optfile /private/var/folders/q2/fzyv0v2523xfxzgkdj10f13r0000gn/T/processing_nEsMtc/39d365e3855c49c58b37edec265b54c6/mergeInputFiles.txt

QGIS version: 3.17.0-Master (...) ImportError: dlopen(/Applications/QGIS-Dev.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg/osgeo/_gdal.cpython-37m-darwin.so, 2): Symbol not found: _curl_mime_addpart (...)

The mergeInputFiles.txt file is not being created! Copying the command into terminal and adding all images to be merged instead of the .txt works!