-
-
Notifications
You must be signed in to change notification settings - Fork 571
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
jsonschema 2.5.0 not installable on Python 3 #228
Comments
Yes, apparently the pypi release is broken. The egg.info includes a requires.txt file that lists |
It's specifically only the wheel which is broken. The source releases are fine. |
I think that it depends on how you install it. Running setup.py should work indeed. |
This is also broken in py26 (I imagine broken in any version that is not 2.7). The wheel is not universal and probably shouldn't be marked as such. Installing from sdist works fine. |
Thanks for the report, sorry that things are broken -- I'm trying to get some tests around this so that I can fix it and push a bugfix. (https://github.com/Julian/jsonschema/tree/install-checks has the idea, I'm just gonna use travis to make sure that what a release generates is installable). I'll update as soon as I figure things out. |
@Julian I believe simply deleting the .whl from pypi will solve this in the short term (forcing installation from sdist) |
Confirmed in openstack py34 jobs today: https://jenkins03.openstack.org/job/gate-nova-python34/82/console |
Good point -- removed the wheel, does that help all here for the immediate term? |
@Julian it seems to work. Thanks. |
We have several dependencies for IPython which are only relevant on one platform or Python version. You can see here how we're specifying them in a way that's compatible with wheels. We actually specify those dependencies twice; once in the new format for building wheels and pip >= 6, and one for people installing from source with pip < 6. The same technique should work for jsonschema's dependencies. |
I think that removing the wheel from pypi doesn't do the trick. At least not when you're using pip version 7, which creates wheels from the source packages before installing them. So you currently can do a |
Using pip --no-binary option until a fix is finalized. |
@mdomke Removing the wheel is fine. When pip creates a wheel from the source it will figure out the right dependencies for your system and put those in your wheel. |
Reverting 537f878 should be enough to fix this. |
@wichert I meant removing the wheel from PyPI doesn't do the trick. Anyhow, specifying the requirements in the way I proposed it in my pull-request should solve the problem. |
Pull #231 will fix this. |
Or #230 which I just saw. That has some extra glue in it to handle old setuptools locally, but personally I'd go with a more pithy approach. |
OK, released 2.5.1, can y'all confirm that things look OK, installation on Py3 works at least now, which I've checked myself. |
It was released with bad requirements. See python-jsonschema/jsonschema#228 Change-Id: I4928c89b9f770017063a69ce262e8cdc3a4a03df
Project: openstack/requirements 16352257719851516170b9ea77cac870cd02e254 Exclude jsonschema 2.5.0. It was released with bad requirements. See python-jsonschema/jsonschema#228 Change-Id: I4928c89b9f770017063a69ce262e8cdc3a4a03df
Project: openstack/requirements 16352257719851516170b9ea77cac870cd02e254 Exclude jsonschema 2.5.0. It was released with bad requirements. See python-jsonschema/jsonschema#228 Change-Id: I4928c89b9f770017063a69ce262e8cdc3a4a03df
All good on 2.7 and 3.4: (This shows the changes from yesterday to today in our transitive requirements) |
I tested the installation on Python 3.4 and Python 2.7 with pip 6.1.1 and pip 7.0.3. Everything works fine from my perspective. I also tried older setuptools versions, but it didn't make a difference… |
Awesome, thanks all around, feel free to follow up if there's anything else here. |
I've put an attempt at catching this in 96c5f47 in case anyone is interested. It fails on 2.5.0 and passes now, so I think, hacky as it is, that it'll do. |
You use a universal wheel for jsonschema, which means the dependencies are forced to be identical on Python 2 and 3. This breaks the handling of functools32, which is only required (and installable) on Python 2. That results in this error:
The text was updated successfully, but these errors were encountered: