-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
ENH: Please provide "universal2" wheels for macOS #39053
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
+1 for this request. I've been able to get many of the libraries needed for machine learning up and working natively. Would really like to have pandas too. Thanks everyone! |
FWIW, the hard part of installing pandas was installing numpy (see numpy/numpy#18143 for a similar issue in the numpy repository), compiling pandas itself from source is not that hard. And a show stopper for providing "universal2" or even "arm64" wheels is the availability of relevant hardware in the various cloud CI systems. That will improve over time, but AFAIK none of the large cloud CI providers have M1 runners. |
Indeed, we use more or less the same CI infrastructure as numpy (https://github.com/MacPython/pandas-wheels), so will also be dependent on cloud support for being to build wheels. |
Hi @ronaldoussoren. Quick question: Should all three(x86_64, universal2, arm64) wheels be provided or just a subset of those three wheels? |
Sorry about the slow response. I'd prefer to only have universal2 wheels as long as the Python.org installer is the universal2 variant. A universal2 variant is larger than an architecture specific one, but the pandas' wheel is not that large given the large disk sizes in current machines. An important advantage of universal2 wheels is that this makes it easier to package applications using tools like py2app and PyInstaller for use on multiple machines. Another advantage is that you can trivially download wheels and install them on other machines without having to know about the CPU in them. Although that's less interesting these days. |
This seems like a bad idea to me. Wheel sizes are not insignificant. I did a quick check for NumPy, which already has both
Pandas wheel sizes are similar to NumPy's. If you install even a very basic scientific stack, you have (e.g.) NumPy, SciPy, Pandas, scikit-learn, scikit-image. That'll be like ~0.5 GB on disk, perhaps more (SciPy and scikit-image are significantly larger). So taking the approach of doubling wheel and on-disk sizes for the only reason to make it a little easier to use In addition,
|
At this point, I think I'm just inclined to provide follow numpy's lead and provide all three wheels(x86_64, arm64, and universal2). Although the universal2 wheels are bigger in size, I do understand that they have a valid use case for a niche group of users and will commit to trying to support them. |
Is your feature request related to a problem?
There is a, currently formally experimental, "universal2" installer for Python on www.python.org. This natively supports both x86_64 (macOS 10.9 or later) and arm64 (macOS 11.0 or later). Using pandas with this installer currently requires building pandas from source, not from a binary wheel.
Describe the solution you'd like
A binary wheel on PyPI for the "universal2" installer, next to the "x86_64" wheel there already is.
In the longer run I'd love to see only "universal2" wheels and no "x86_64" wheels, but that at the very least requires time for support in the packaging system to further mature (support for "universal2" in pip and wheel is pretty new at this point).
The text was updated successfully, but these errors were encountered: