Skip to content

gdbm cannot load dbm.gnu module

Summary

Steps to reproduce

Environment

Environment (conda list):
$ conda list

Details about conda and system ( conda info ):
$ conda info

What is the current bug behavior?

When running megasky.py (a skymap plotting function and part of the igwn-py37 environment), the following error occurs.

Traceback (most recent call last):
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37/bin/megasky.py", line 14, in <module>
    from ligo.skymap import kde, plot, bayestar, postprocess, io
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/ligo/skymap/kde.py", line 34, in <module>
    from .coordinates import EigenFrame
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/ligo/skymap/coordinates/__init__.py", line 11, in <module>
    'from .{0} import *'.format(module))
  File "<string>", line 1, in <module>
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/ligo/skymap/coordinates/detector.py", line 78, in <module>
    registry = EarthLocation._get_site_registry()
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/astropy/coordinates/earth.py", line 529, in _get_site_registry
    reg = get_downloaded_sites()
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/astropy/coordinates/sites.py", line 135, in get_downloaded_sites
    content = get_pkg_data_contents('coordinates/sites.json', encoding='UTF-8')
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/astropy/utils/data.py", line 667, in get_pkg_data_contents
    cache=cache) as fd:
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/contextlib.py", line 112, in __enter__
    return next(self.gen)
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/astropy/utils/data.py", line 452, in get_pkg_data_fileobj
    cache=cache) as fileobj:
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/contextlib.py", line 112, in __enter__
    return next(self.gen)
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/astropy/utils/data.py", line 192, in get_readable_fileobj
    timeout=remote_timeout)
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/site-packages/astropy/utils/data.py", line 1012, in download_file
    with shelve.open(urlmapfn) as url2hash:
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/shelve.py", line 243, in open
    return DbfilenameShelf(filename, flag, protocol, writeback)
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/shelve.py", line 227, in __init__
    Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37-20200121/lib/python3.7/dbm/__init__.py", line 91, in open
    "available".format(result))
dbm.error: db type is dbm.gnu, but the module is not available

From the Python command line (using the igwn-py37 environment)

>>> import dbm.gnu
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/cvmfs/oasis.opensciencegrid.org/ligo/sw/conda/envs/igwn-py37/lib/python3.7/dbm/gnu.py", line 3, in <module>
    from _gdbm import *
ModuleNotFoundError: No module named '_gdbm' 

What is the expected correct behavior?

no error :)

Possible fixes

gdbm may need an update

Edited by Duncan Macleod