-
Notifications
You must be signed in to change notification settings - Fork 520
Description
Checklist
- [ x ] I've prepended issue tag with type of change: [bug]
- (If applicable) I've attached the script to reproduce the bug
- [ x ] (If applicable) I've documented below the DLC image/dockerfile this relates to
- (If applicable) I've documented below the tests I've run on the DLC image
- [ x ] I'm using an existing DLC image listed here: https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/deep-learning-containers-images.html
- I've built my own container based off DLC (and I've attached the code used to build my own image)
Concise Description:
sqlite
support is a quasi-standard part of Python which many packages relying on it, like pytest
, pytest-cov
, etc.
For this reason Python is usually compiled with sqlite support. Unfortunately that is NOT the case for this images in this repo, see example:
https://github.com/aws/deep-learning-containers/blob/master/tensorflow/inference/docker/2.3/py3/Dockerfile.cpu#L72
See similar complaints about other times when people forgot to include sqlite support in Python compiled from source:
https://stackoverflow.com/questions/1210664/no-module-named-sqlite3
The solution is to install the libsqlite3-dev
package first and then compile Python with sqlite support (with the --enable-loadable-sqlite-extensions
flag).
Also see the same in the official Python docker images:
https://github.com/docker-library/python/blob/01b773accc5a2ccb7a4f0d83ec6eb195fe3be655/3.7/buster/Dockerfile#L43
DLC image/dockerfile:
tensorflow-inference:2.3.1-cpu-py37-ubuntu18.04-v1.7
Current behavior:
ModuleNotFoundError: No module named '_sqlite3'
Expected behavior:
Python should be compiled with sqlite support.
Additional context: