-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Installing 0.9.0 wheel on python 3.6 does not install dataclasses, causes import failure #1302
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
I manually built the wheel using python 3.6 and uploaded to testpypi. It seems to work.
As expected, running Should I go ahead and upload the py36 whl to primary pypi too or do you want to try cibuildwheel? |
Fine with me to upload the 36 wheel just to get this fixed in the short term. Will it conflict with the Long run I'll volunteer to set up cibuildwheel if we think that's the way to go. |
Uploaded. See here for documentation on order of preference. |
I believe a simple solution is to remove Lines 48 to 50 in 518cc35
and add the following to I did that, rebuilt the wheel, and inspected the MANIFEST. It contained In any case, the conda-forge package is also broken on 3.6. I think that can also be solved using a similar syntax in the |
Nice. Would it make sense to "re-release" 0.9.0 to PyPI using that syntax, or are you happy with the state of PyPI as-is? NREL/rdtools#290 is happy with it, so maybe no need to change anything. I assume the |
I'm happy with the current state so I'd say leave it alone. |
Ok, the |
Describe the bug
Installing pvlib 0.9.0 using the wheel currently on PyPI does not install dataclasses, causing pvlib to fail to import on python 3.6. I think this is because the wheel builder workflow uses python 3.8, so it ignores the dataclasses dependency when building the wheel (which is supposed to be universal across all our supported python versions):
pvlib-python/.github/workflows/publish.yml
Line 24 in 518cc35
pvlib-python/setup.py
Lines 49 to 50 in 518cc35
Opening the wheel (it's just a zipfile) and viewing the
pvlib-0.9.0.dist-info/METADATA
file, there is no mention of dataclasses. Note that installing 0.9.0 from source (pip install pvlib --no-binary pvlib
) works as intended because it is running setup.py locally in python 3.6. Our CI never has this kind of python version mismatch between what was used to build the wheel and what was used to run the tests, so it didn't catch this.To Reproduce
Additional context
Noticed in NREL/rdtools#290
Possible solutions:
dataclasses
for all python versionsdataclasses
to be required for all versions insetup.py
The text was updated successfully, but these errors were encountered: