Just tried to use this on heroku with geoIP2 on a clean project. The end of the compilation shows that all 18 tests pass:
remote: All 18 tests passed
remote: ===================
remote: Making install in src
remote: /bin/mkdir -p '/app/tmp/cache/geoip/libmaxminddb/dist/lib'
remote: /bin/bash ../libtool --mode=install /usr/bin/install -c libmaxminddb.la '/app/tmp/cache/geoip/libmaxminddb/dist/lib'
remote: libtool: install: /usr/bin/install -c .libs/libmaxminddb.so.0.0.7 /app/tmp/cache/geoip/libmaxminddb/dist/lib/libmaxminddb.so.0.0.7
remote: libtool: install: (cd /app/tmp/cache/geoip/libmaxminddb/dist/lib && { ln -s -f libmaxminddb.so.0.0.7 libmaxminddb.so.0 || { rm -f libmaxminddb.so.0 && ln -s libmaxminddb.so.0.0.7 libmaxminddb.so.0; }; })
remote: libtool: install: (cd /app/tmp/cache/geoip/libmaxminddb/dist/lib && { ln -s -f libmaxminddb.so.0.0.7 libmaxminddb.so || { rm -f libmaxminddb.so && ln -s libmaxminddb.so.0.0.7 libmaxminddb.so; }; })
remote: libtool: install: /usr/bin/install -c .libs/libmaxminddb.lai /app/tmp/cache/geoip/libmaxminddb/dist/lib/libmaxminddb.la
remote: libtool: install: /usr/bin/install -c .libs/libmaxminddb.a /app/tmp/cache/geoip/libmaxminddb/dist/lib/libmaxminddb.a
remote: libtool: install: chmod 644 /app/tmp/cache/geoip/libmaxminddb/dist/lib/libmaxminddb.a
remote: libtool: install: ranlib /app/tmp/cache/geoip/libmaxminddb/dist/lib/libmaxminddb.a
remote: libtool: finish: PATH="/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/vendor/bin:/sbin" ldconfig -n /app/tmp/cache/geoip/libmaxminddb/dist/lib
>>> reader = maxminddb.open_database(f"{os.environ.get('GEOIP_GEOLITE2_PATH')}/{os.environ.get('GEOIP_GEOLITE2_CITY_FILENAME')}",mode=1)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/app/.heroku/python/lib/python3.6/site-packages/maxminddb/__init__.py", line 37, in open_database
"MODE_MMAP_EXT requires the maxminddb.extension module to be available"
ValueError: MODE_MMAP_EXT requires the maxminddb.extension module to be available
Just to check, I went ahead and tried to import maxminddb.extension and checked if it was loaded:
>>> import maxminddb.extension
>>> dir(maxminddb)
['InvalidDatabaseError', 'MODE_AUTO', 'MODE_FD', 'MODE_FILE', 'MODE_MEMORY', 'MODE_MMAP', 'MODE_MMAP_EXT', 'Reader', '__author__', '__builtins__', '__cached__', '__copyright__', '__doc__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__title__', '__version__', 'compat', 'const', 'decoder', 'errors', 'extension', 'file', 'maxminddb', 'open_database', 'os', 'reader']
>>> 'maxminddb.extension' in sys.modules
True
Is there something special I need to do to let maxminddb know where the extension files are?