Skip to content

TypeError: a bytes-like object is required, not 'str' #14

@jinnatar

Description

@jinnatar

python-geoip (1.2)
python 3.6.9
Reproduce:

from geoip import geolite2
match = geolite2.lookup('8.8.8.8')

Output:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 364, in lookup
    return self._get_actual_db().lookup(ip_addr)
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 350, in _get_actual_db
    rv = self._load_database()
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 342, in _load_database
    return mod.loader(self, sys.modules[__name__])
  File "/usr/local/lib/python3.6/dist-packages/_geoip_geolite2/__init__.py", line 9, in loader
    return mod.open_database(filename)
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 508, in open_database
    md = _read_mmdb_metadata(buf)
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 382, in _read_mmdb_metadata
    buf.size() - MMDB_METADATA_BLOCK_MAX_SIZE)
TypeError: a bytes-like object is required, not 'str'

The same issue happens using a self-provided latest DB:

from geoip import open_database
db = open_database('GeoLite2-City.mmdb')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 508, in open_database
    md = _read_mmdb_metadata(buf)
  File "/usr/local/lib/python3.6/dist-packages/geoip.py", line 382, in _read_mmdb_metadata
    buf.size() - MMDB_METADATA_BLOCK_MAX_SIZE)
TypeError: a bytes-like object is required, not 'str'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions