Comments (8)
I have started the migration from multibuild to cibuildwheel, which should hopefully solve some of our problems with distributing wheels on pypi: #469
It looks like this is working for linux and macos (both intel and apple silicon). These will be uploaded with the next release in about a month or so. However, I have no idea on how to build wheels for windows, so if you know anything about this, your help would be appreciated! I also would really like to make aarch64 builds, but this involves cross compiling, which complicates installing fftw and openblas.
from shtools.
If you're still using AppVeyor to build the Windows wheels, I think I found a solution. It involves using the MSYS2
that comes with the AppVeyor image, and then installing the dependencies (Fortran
, fftw3
, openblac
, etc.) using pacman
. It then adds the DLLs to the built wheel using delvewheel. This takes a bit longer, but seems to work reliably and makes the appveyor.yml
configuration a bit cleaner. Note that I disabled the uploads to PyPi, however they would work with the proper credentials. See my AppVeyor log for details.
Here is the link to my fork with the updated appveyor.yml file. I'm pretty new to this, so things like caching could be improved with my configuration. I also imagine a similar approach (i.e., using MSYS2) could work with GitHub actions.
Alternatively, AppVeyor could be used only for the Windows builds as a GitHub App, running alongside the Actions-based builds for Linux and MacOS. Then it wouldn't be necessary to rewrite the MSYS2 steps as a GitHub action.
from shtools.
Also, would there be any way to upload the MacOS arm64 build to PyPi (I believe it's already on Anaconda)?
from shtools.
Thanks for looking into this!
First, could you take a look at this PR? #469 I'm trying to get away from our current multibuild/appveyor wheel builders, as these only cause me continuous grief. Linux and macOS (ARM+intel) are working, but windows isn't. I would like to get linux ARM to work too, but this is of less importance.
As for the MacOS arm64 builds, we upload everything directly to pypi, and as far as I know, there isn't an arm64 build; this is part of the reason for trying to transition to cibuildwheel. If there is an ARM64 build, I doubt it works.
Lastly, I would like to put out a new release before the end of July, but I was hoping to include the open PR regarding Boule, which is waiting on a new upstream release. I'll ping the devs there, and if this is going to take a long time, I'll just go ahead without them.
from shtools.
I've almost got Windows builds working with cibuildwheel
in #479, however there's a slight irregularity with oldest-supported-numpy
. I'll continue testing to see if I can get that fixed.
from shtools.
Another thing I noticed is that cibuildwheel
is building for both CPython and PyPy. The numpy
dependency issue only occurs in the PyPy variant (version 3.10), and I am wondering if you intend to support PyPy Python in addition to plain old CPython.
For simplicity, I'm going to add the PyPy wheels to CIBW_SKIP. Please let me know if the plan is to support PyPy, though, so I can revert the change.
Otherwise, the builds for Windows are good to go! The only changes from #469 that I made in #479 are to re-enable Windows support (essentially, #479 is a drop-in replacement for #469). I have also tested importing the wheel it generates, and no DLL errors occur.
from shtools.
I don't have problems with skipping PyPy. As far as I know, we never built PyPy wheels in the past.
from shtools.
I am going to close this as we have now (1) successfully transitioned to meson for our build backend, (2) we have successfully migrated to cibuildwheel for building all wheels, and (3) we now are compatible with using numpy 2.0.
If anyone has any further issues, please open a new issue.
from shtools.
Related Issues (20)
- Install issue can't build wheel. (Using Pycharm) HOT 2
- Exporting grid data to 3D model
- Sampling is incorrectly set when using DHRealGrid() class. HOT 1
- Release SHTOOLS 4.11 HOT 1
- Meson can't determine version of pyshtools when installing from a source tarball HOT 5
- jupyter is an (undeclared) build-time dependency HOT 6
- Compilation error on MacOS Sonoma HOT 8
- issue when calling pyshtools.spectralanalysis.SHReturnTapersMap HOT 6
- installing pyshtools lead to error: metadata-generation-failed (PyCharm) HOT 4
- Error message when attempting to install pyshtools on Mac OS X 14.2.0 HOT 15
- Release SHTOOLS 4.12.0 HOT 1
- Implement ducc backend to pyshtools gravity and magnetic classes HOT 2
- Apple silicon M1 macOS 14.4.1 library 'lapack' not found HOT 5
- Matrix support for pysh.legendre.pl... HOT 3
- Plotting methods in `shclasses` use deprecated matplotlib function `matplotlib.cm.get_cmap` HOT 1
- Release SHTOOLS 4.13.0 HOT 2
- Difference in Reconstruction HOT 14
- plotgmt does not work for grids with extend=False HOT 3
- The method of truncating spherical harmonic coefficients? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shtools.