-
Notifications
You must be signed in to change notification settings - Fork 88
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
0.6.4 install fails on Mac OSX, Windows CI machines #210
Comments
I've responded in the issue. FWIW we also test builds on macOS (as of this release in fact) and Windows. So I think once the CI issue is sorted things will start working for you. |
@jakirkham any chance of numcodecs uploading wheels to PyPI? As mentioned in the issue, users are having issue installing it, too. |
Please see issue ( #70 ). |
Fun! 😬 |
Maybe this ( #70 (comment) ) helps? |
Hmm...thinking about this a bit more it doesn't appear Blosc has changed the version of Snappy they are using. So that's not likely the issue We use to skip over compilation failures and then just not provide the C extensions. However we changed that recently as users were unhappy not having a clearer error. So it is likely this was never working on macOS and Windows and we are now recently seeing this. So I think there is probably something off about how we are building the Snappy portion of the extension in particular. I'll see if I can reproduce it and report back. |
Was unable to reproduce the issue unfortunately. My best guess is PR ( #211 ) fixes the macOS issue. Though really need feedback to be sure. The Windows error seems to be complaining about Visual Studio not being installed. So that would need to be installed by the user. |
@jakirkham but 0.6.3 wasn't causing any issues, and users were happily using napari. Is there a way to not depend on this compilation in future releases? e.g. a hard warning, or a |
Yeah that's fair. We decided to make the errors hard in PR ( #197 ) after some discussion. We could revert that PR. Perhaps users wanting to fail the build could set an environment variable to get that behavior. WDYT @llllllllll would this work for your use case? |
@jakirkham this was interesting:
Is this something that can be done in the napari source distribution, so that if the user is pip installing napari, this will work? That would be a nice solution. I understand totally concerns that silent failure is not great. However, what we really want is to mark compilation as optional, as before: if a user has a compiler and it works, great, if not, well, from napari's perspective, we don't really care (until someone complains 😛). But we don't necessarily want to go with a saddled I kinda think |
Yep, this is a thing you could do.
Yep, I get that. For clarity what I'm proposing is...
|
That said, I do want to hear feedback from other users. Maybe there are other things we are missing. 🙂 |
The issue is that people don't know that they would need to do this because soft compile errors are non-standard. I don't think pip lets you warn from a setup.py, so there is no way to let the user know something has failed until your code crashes with an importerror. If you get an error, then you know it doesn't work and can pass the variable to disable the extensions and try again. Maybe we need to enhance the error message to tell people about this flag. We could also add something like |
... how? I thought it would be quick to find information on setting environment variables in e.g. |
For sure. I don't love it. That said, we are now getting an uptick in novice users and they are running into compilation issues, which is not great either. Please see issue ( napari/napari#665 ) for context.
I think if we
Yeah it's worth at least improving the existing message. Though is there something more we can do here? |
I see, you mean in the build scripts of your project? No I'm not aware of anything offhand. Something may exist, but it probably requires more digging. That said, users could set the environment variable externally before running |
Ah sure! But no, my priority is that users can just type Wheels would make this whole conversation moot, but I'll leave that discussion to #70. |
I think |
If someone is willing to do that work and maintain it, then it would be ok with me too. |
Just weighing in here to support @llllllllll's perspective: I maintain some downstream packages that use the blosc codecs, and get hit by novice users installing from pip and not noticing anything is wrong until import fails. It seems like adding Probably the only real fix for this is to have windows and OSX wheels? Wheels for linux would be nice, but failing when there's no compiler on linux is totally fine IMO. |
Yeah @jeromekelleher that's what we are discussing in issue ( #70 ). That or using wheels from some of our dependencies (like Blosc) to simplify the installation process here. |
As of 0.7.1, we now build and publish wheels from CI to PyPI for macOS, Linux, and Windows. Would encourage people to give those a try and report back. Going to go ahead and close this (assuming wheels have fixed the issue), though please feel free to reopen (or ping us to do so) if not. Thanks! |
🎉 |
Minimal, reproducible code sample, a copy-pastable example if possible
We (napari/napari#665) are running into errors installing dask / zarr on our mac osx and windows CI due to the recent 0.6.4 release. On our linux CI it installs fine. For mac and windows we end with the following, but please see the links above for the full stack traces:
Problem description
Expected outcome is successful install
Version and installation information
Please provide the following:
numcodecs.__version__
0.6.4The text was updated successfully, but these errors were encountered: