-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Failed install with outdated pipenv version #987
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
Comments
This was the response last time upgrading pipenv came up: #786 (comment) |
Hey @nikolaik, have you found a solution to this? I am having a similar problem. |
Ended up downgrading pipenv to the same version used by the heroku python buildpack and relocking deps, ie. something like:
You might be able to skip downgrading pipenv (which can reintroduce other buggy behaviour, like with editable git deps or similar) |
Thanks for your answer! It's not really an ideal solution, i was hoping i could somehow force installing an up-to-date version of pipenv, but this at least works. |
Hi! On my list is to update the buildpack's pipenv to a newer version. I know in the past this was deferred due to it being a breaking change (due to changes in the lockfile format or similar), and then cancelled due to the future of pipenv looking more bleak. Since then activity in the pipenv project has picked up, and I've taken over as Python owner, so I'm happy to re-evaluate. Before I can perform the upgrade I'd need to:
I don't use pipenv personally, so would need to do some experimentation to answer the above (sadly not much was documented in previous issues in this repo) - but if anyone is able to help give more context it would definitely speed things up / mean I can justify bumping this up the priority queue :-) |
@edmorley I'm glad this is something you are considering, it would indeed be great to be able to use one of the recent releases of pipenv. To your checklist: Interestingly enough, there is a field in the I might do some investigating on my own if i can find the time. If i find anything interesting, should i post it here? |
@jh0ker Yeah if you or anyone else finds out more, here is a great place to put it :-) |
Hi! Has anyone been able to find answers to the above, which might speed up this work? :-) |
I just put together a little script to test this and I'm not seeing any differences:
I think a graceful way to handle this would be with |
Previously the buildpack used pipenv `2018.5.18`, which didn't support newer pip, meaning that apps using pipenv had to be pinned to a much older version of pip. For apps using pipenv, the buildpack now installs pipenv `2020.11.15` and no longer overrides the pip version compared to non-pipenv installs, meaning pip `20.1.1` is now used instead of pip `9.0.2`. Changes: https://github.com/pypa/pipenv/blob/master/CHANGELOG.rst#20201115-2020-11-15 pypa/pipenv@v2018.05.18...v2020.11.15 This is particularly important since the recently released `cryptography` v3.4 requires at least pip 19.x, otherwise pip is unable to use its newer style wheels, and so falls back to building the source distribution. This causes the install to fail, since building `cryptography` now requires Rust, which is not present in the Heroku stack image. Fixes #979. Fixes #987. Fixes #1108. Closes GUS-W-8054805.
Previously the buildpack used pipenv `2018.5.18`, which didn't support newer pip, meaning that apps using pipenv had to be pinned to a much older version of pip. For apps using pipenv, the buildpack now installs pipenv `2020.11.15` and no longer overrides the pip version compared to non-pipenv installs, meaning pip `20.1.1` is now used instead of pip `9.0.2`. (The pip version is still pinned, but to the reasonably new pip version used by all other non-pipenv builds.) Changes: https://github.com/pypa/pipenv/blob/master/CHANGELOG.rst#20201115-2020-11-15 pypa/pipenv@v2018.05.18...v2020.11.15 This is particularly important since the recently released `cryptography` v3.4 requires at least pip 19.x, otherwise pip is unable to use its newer style wheels, and so falls back to building the source distribution. This causes the install to fail, since building `cryptography` now requires Rust, which is not present in the Heroku stack image. Fixes #979. Fixes #987. Fixes #1108. Closes GUS-W-8054805.
Hi! This week's cryptography 3.4 release made this much more urgent, since cryptography installs fail outright when using older pip, such as that pinned when using pipenv in this buildpack. (And whilst only <5% of Heroku Python builds use pipenv, cryptography is pretty widely used as a sub-dependency.) I've just released a new buildpack version that includes #1169 and so latest pipenv + newer pip when using pipenv. Sorry it took so long to get this issue closed. Non-Python projects have consumed most of my time the last 4 months (eg Heroku-20 beta/GA/default stack, Cedar-14 EOL + sunset, Heroku-16 deprecation process, amongst others), but I'm now finally able to return to the Python buildpack and give it the attention it deserves :-) The recent test suite refactor/adding new testcases (eg #1146) reduced the risk of pipenv upgrades considerably, so hopefully moving forwards we can track recent pipenv versions more closely (with the caveat that we never want to be the test subjects for a brand new release, so won't ever update immediately - particularly given the varied stability of pipenv over the years). |
I think this build fails because of a bug fixed in a more recent pipenv version (latest is at 2020.6.2 at the moment)
See attached build log below:
The text was updated successfully, but these errors were encountered: