earthobservations / wetterdienst

Open weather data for humans.
https://wetterdienst.readthedocs.io/
MIT License
349 stars 54 forks source link

dbm.error: db type is dbm.gnu, but the module is not available #242

Closed amotl closed 3 years ago

amotl commented 3 years ago

Describe the bug After installing wetterdienst within a fresh micromamba environment and trying to acquire radar data using one of its example programs, it croaks.

To reproduce

  1. Follow the installation at https://github.com/earthobservations/wetterdienst/issues/241#issuecomment-731811937.
  2. Run example radar_sweep_hdf5.py.
    (base) wget https://raw.githubusercontent.com/earthobservations/wetterdienst/master/example/radar/radar_sweep_hdf5.py
    (base) python radar_sweep_hdf5.py

Expected behavior Installing and invoking wetterdienst should just work (TM).

Version information OS: macOS Environment: micromamba

$ wetterdienst --version
wetterdienst 0.10.1
$ python -V
Python 3.8.6
$ micromamba --version
0.7.3

Additional context Maybe it's related to the dogpile cache again? See also #217, #232 and #233.

Full traceback

Traceback (most recent call last):
  File "radar_sweep_hdf5.py", line 99, in <module>
    main()
  File "radar_sweep_hdf5.py", line 95, in main
    radar_hdf5_example()
  File "radar_sweep_hdf5.py", line 74, in radar_hdf5_example
    for item in request.collect_data():
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/wetterdienst/dwd/radar/access.py", line 169, in collect_radar_data
    file_index = create_fileindex_radar(
  File "<decorator-gen-5>", line 2, in create_fileindex_radar
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/cache/region.py", line 1271, in get_or_create_for_user_func
    return self.get_or_create(key, user_func, timeout,
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/cache/region.py", line 874, in get_or_create
    with Lock(
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/lock.py", line 186, in __enter__
    return self._enter()
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/lock.py", line 86, in _enter
    value = value_fn()
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/cache/region.py", line 826, in get_value
    value = self.backend.get(key)
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/cache/backends/file.py", line 220, in get
    with self._dbm_file(False) as dbm:
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/site-packages/dogpile/cache/backends/file.py", line 213, in _dbm_file
    dbm = self.dbmmodule.open(
  File "/Users/amo/dev/earthobservations/tmp/mamba/lib/python3.8/dbm/__init__.py", line 91, in open
    raise error[0]("db type is {0}, but the module is not "
dbm.error: db type is dbm.gnu, but the module is not available
amotl commented 3 years ago

Again, this issue could be resolved by purging the cache directory, like rm -r ~/Library/Caches/wetterdienst.