[gdal-dev] Running GDAL through Python >= 3.8 on Anaconda - DLL load failed

Alexandre Neto senhor.neto at gmail.com
Wed Oct 13 17:25:51 PDT 2021


Hi pedro,

Are you sure you are not mixing conda channels? Normally, in the same
environment, you should stick to a single channel to avoid dependency
problems.

I also noticed that you are using anaconda. I suggest you use miniconda
instead. It comes with the bare minimal tools to install and manage the
packages you explicitly want, instead of installating Gb of packages that
unless you know them, you will never use.

Alexandre Neto

A quarta, 13/10/2021, 17:16, Pedro Venâncio <pedrongvenancio at gmail.com>
escreveu:

> I will ask on GDAL conda-forge, maybe this can be some packaging problem.
>
> Thanks!
>
>
> Pedro Venâncio <pedrongvenancio at gmail.com> escreveu no dia quarta,
> 13/10/2021 à(s) 17:00:
>
>> Tried to define several environment variables, but nothing seems to work
>>
>> [image: env_win10.jpg]
>>
>>
>> Joaquim Manuel Freire Luís <jluis at ualg.pt> escreveu no dia quarta,
>> 13/10/2021 à(s) 16:23:
>>
>>> Não Pedro,
>>>
>>>
>>>
>>> When I look into my own build of the gdall dll I see no dependency on
>>> that “opj_encoder_set_extra_options” but likely because it’s a different
>>> version (I build from master).
>>>
>>>
>>>
>>> From my experience on this there is really nothing one can do other than
>>> rebuild the dll or replace the dependency that is missing the required
>>> symbol. Nothing we can do from a conda installation.
>>>
>>>
>>>
>>> But ofc my analysis may be all wrong.
>>>
>>>
>>>
>>> Joaquim
>>>
>>>
>>>
>>> *From:* gdal-dev <gdal-dev-bounces at lists.osgeo.org> *On Behalf Of *Pedro
>>> Venâncio
>>> *Sent:* Wednesday, October 13, 2021 4:04 PM
>>> *To:* gdal-dev at lists.osgeo.org
>>> *Subject:* Re: [gdal-dev] Running GDAL through Python >= 3.8 on
>>> Anaconda - DLL load failed
>>>
>>>
>>>
>>> Hi Joaquim,
>>>
>>>
>>>
>>> Thanks for sharing your case. Did you manage to make it work in some way?
>>>
>>>
>>>
>>> I've already uninstalled a test PostgreSQL/PostGIS that I supposed to be
>>> the source of the conflict, but I keep having the same error.
>>>
>>>
>>>
>>> I also reinstalled conda, but nothing had changed.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Joaquim Manuel Freire Luís <jluis at ualg.pt> escreveu no dia quarta,
>>> 13/10/2021 à(s) 15:24:
>>>
>>> Hi,
>>>
>>>
>>>
>>> I have a certain horror to python (that I’m trying to fight) a bit of it
>>> is because I never manage to really use it.
>>>
>>>
>>>
>>> I had and older Miniconda (Mini => 18 GB !!!!) that was so big that I
>>> removed and installed a new one in which I tried Pedro’s case and got
>>> exactly the same errors.
>>>
>>>
>>>
>>> I then run a dependency analysis from within the conda shell and found
>>> two weird things
>>>
>>>
>>>
>>>    1. The gdal dll depends on a xerces-c_3_2.dll locate at
>>>    C:\WINDOWS\system32. This seems quite dangerous (for dependency sakes) but
>>>    seems to not cause any problem in this case.
>>>    2. There is a “red mark” on the opj_encoder_set_extra_options symbol
>>>    and this alone can explain the “ImportError: DLL load failed while
>>>    importing _gdal: The specified procedure could not be found.”
>>>
>>>
>>>
>>> Hopefully the screen capture is small enough to get through.
>>>
>>>
>>>
>>> Joaquim
>>>
>>>
>>>
>>> *From:* gdal-dev <gdal-dev-bounces at lists.osgeo.org> *On Behalf Of *Even
>>> Rouault
>>> *Sent:* Wednesday, October 13, 2021 2:39 PM
>>> *To:* Pedro Venâncio <pedrongvenancio at gmail.com>
>>> *Cc:* gdal-dev at lists.osgeo.org
>>> *Subject:* Re: [gdal-dev] Running GDAL through Python >= 3.8 on
>>> Anaconda - DLL load failed
>>>
>>>
>>>
>>> ok, so now you have to inspect the PATH and fix it so that the gdal DLL
>>> and its dependencies are in it. But all of this sounds like there's
>>> something weird in your environment. Perhaps a mix of GDAL versions?
>>>
>>> Le 13/10/2021 à 15:36, Pedro Venâncio a écrit :
>>>
>>> Can you change in __init__.py
>>>
>>>                 try:
>>>                     os.add_dll_directory(p)
>>>                 except FileNotFoundError:
>>>                     continue
>>>
>>>
>>>
>>> to
>>>
>>>                 try:
>>>                     os.add_dll_directory(p)
>>>                 except (FileNotFoundError, OSError):
>>>                     continue
>>>
>>>
>>>
>>> Yes, here is the output:
>>>
>>> Traceback (most recent call last):
>>>
>>>   File "C:\Users\PedroVenancio\anaconda3\envs\arosics\lib\site-packages\osgeo\__init__.py", line 21, in swig_import_helper
>>>
>>>     return importlib.import_module(mname)
>>>
>>>   File "C:\Users\PedroVenancio\anaconda3\envs\arosics\lib\importlib\__init__.py", line 127, in import_module
>>>
>>>     return _bootstrap._gcd_import(name[level:], package, level)
>>>
>>>   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
>>>
>>>   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
>>>
>>>   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
>>>
>>>   File "<frozen importlib._bootstrap>", line 657, in _load_unlocked
>>>
>>>   File "<frozen importlib._bootstrap>", line 556, in module_from_spec
>>>
>>>   File "<frozen importlib._bootstrap_external>", line 1166, in create_module
>>>
>>>   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
>>>
>>> ImportError: DLL load failed while importing _gdal: Impossível localizar o procedimento especificado.
>>>
>>>
>>>
>>> During handling of the above exception, another exception occurred:
>>>
>>>
>>>
>>> Traceback (most recent call last):
>>>
>>>   File "demo.py", line 1, in <module>
>>>
>>>     from osgeo import gdal
>>>
>>>   File "C:\Users\PedroVenancio\anaconda3\envs\arosics\lib\site-packages\osgeo\__init__.py", line 37, in <module>
>>>
>>>     _gdal = swig_import_helper()
>>>
>>>   File "C:\Users\PedroVenancio\anaconda3\envs\arosics\lib\site-packages\osgeo\__init__.py", line 34, in swig_import_helper
>>>
>>>     return importlib.import_module('_gdal')
>>>
>>>   File "C:\Users\PedroVenancio\anaconda3\envs\arosics\lib\importlib\__init__.py", line 127, in import_module
>>>
>>>     return _bootstrap._gcd_import(name[level:], package, level)
>>>
>>> ModuleNotFoundError: No module named '_gdal'
>>>
>>>
>>>
>>> --
>>>
>>> http://www.spatialys.com
>>>
>>> My software is free, but my time generally not.
>>>
>>> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20211014/91484d91/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: env_win10.jpg
Type: image/jpeg
Size: 33695 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20211014/91484d91/attachment-0001.jpg>


More information about the gdal-dev mailing list