Closed nk9 closed 1 year ago
I'd suggest taking it up with pipenv, it doesn't seem to have anything whatsoever to do with pysqlite3.
The relevant error seems to be this monstrosity:
#8 27.89 ERROR: In --require-hashes mode, all requirements must have their versions pinned with ==. These do not:
#8 27.89 pysqlite3-binary from https://files.pythonhosted.org/packages/e5/af/750aa272a8282f6518a8532f31c51cc9e49815c626cf0df8cdf181367b52/pysqlite3_binary-0.5.0-cp310-cp310-manylinux_2_24_x86_64.whl (from -r /tmp/pipenv-8bdg3b7s-requirements/pipenv-hsujwah9-hashed-reqs.txt (line 4))
So this is actually because the Pipfile was locked on an M1 Mac, but the pysqlite3-binary package doesn't have M1 wheels. So the locking just skips your package, and no hashes are included in the lock file. When it's then run in Docker on linux/amd, using pipenv install --deploy
, there is nothing to download (no hashes), but the Pipfile specifies that the package is required for that platform. So the install just fails.
There are a couple issues in pipenv which discuss this: https://github.com/pypa/pipenv/issues/3902 https://github.com/pypa/pipenv/issues/5130
I also opened my own issue before I worked out what was going on: https://github.com/pypa/pipenv/issues/5723
I want to use a recent version of SQLite3 with Python, but the version on the Lambda images is very old. So last year I found this project, and I was using it successfully to run the Lambda container with a newer version of SQLite.
Dockerfile
Pipfile
Things work fine when I install the binary package by itself:
But when I include boto3, the pipenv installation fails quite spectacularly:
I also tried after pinning version 0.5.0 of
pysqlite3-binary
, but that didn't change anything.Do you have any idea where to start when figuring this out? This worked fine last year, but it's not working now. I would expect that boto3 is a pretty common package to run alongside this one, they should definitely work together.