4
votes

I'm trying to use Docker to create a dependency package for AWS Lambda using this repository, but whenever I try to run the build.sh file, I end up with the message:

no such option: --use-wheel

Then when I try to use pip install wheel (outside of Docker), I'm told that it's already on my local machine, which it is. How do I install Wheel in the Docker container?

If it's helpful, this appears to be the line of code in build.sh that is giving the issue:

test -f /outputs/requirements.txt && pip install --use-wheel -r /outputs/requirements.txt

Any help is much appreciated!

2

2 Answers

11
votes

Your issue isn't due to missing dependencies ( wheel is installed in the build.sh script you referenced: https://github.com/ryansb/sklearn-build-lambda/blob/master/build.sh#L18 )

use-wheel was deprecated and no longer exists for pip.

You can achieve the same by omitting the --use-wheel entries from the script. Take a look at the Python 3.6 PR on the linked repository: https://github.com/ryansb/sklearn-build-lambda/pull/16/files#diff-0b83f9dedf40d7356e5ca147a077acb4

5
votes

--use-wheel is deprecated since pip 7 (in favor of --only-binary) and removed since pip 10 beta 1.

To fix all scripts in a git repo:

git grep -l -- --use-wheel | while read f; do sed -i -e 's|use-wheel|only-binary=:all:|g' ${f}; done