Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try to autoinstall manylinux1 wheels when possible #249

Closed
jamesls opened this issue Mar 3, 2017 · 0 comments · Fixed by #388
Closed

Try to autoinstall manylinux1 wheels when possible #249

jamesls opened this issue Mar 3, 2017 · 0 comments · Fixed by #388

Comments

@jamesls
Copy link
Member

jamesls commented Mar 3, 2017

In order to create a lambda deployment package, chalice currently will:

  • Create a virtualenv
  • pip install your requirements files into the virtualenv
  • copy over the chalice app, chalicelib, and vendor directory into site-packages
  • zip up the site-packages directory

This process works as long as all the packages are pure python packages. If you specify something like numpy, we'll install the packages based on whatever platform you're running on, which is problematic. For example, on a Mac, we'll install the numpy binaries for mac, zip them up and send them over to lambda, and import numpy will fail when the lambda function is invoked.

We've received a number of issues about this:

What I'd propose is a best-effort attempt at using manylinux1 wheels:

  • For each package, if there's a manylinux1 wheel available, then use it
  • Otherwise if there's a suitable non-platform specific wheel, then use it
  • Otherwise if it's a pure python package, just fall back to the normal sdist install
  • Otherwise if it requires C extensions and we don't have a manylinux1 available, fail (or maybe just warn).

I'm not sure how feasible it is to implement the above logic, but that would be my ideal behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant