-
-
Notifications
You must be signed in to change notification settings - Fork 33
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
Mac OSX intel version too low #77
Comments
I'm going to need some more info about your actual problem @matejsp. Folks have been using this package for several years now without issues. Can you please explain what exactly is breaking for you?
Also, you can now migrate away from this package and build against numpy 1.25.x instead (it exports an older C API, see the note at https://numpy.org/devdocs/dev/depending_on_numpy.html#build-time-dependency). |
I want to build pandas and required numpy. Our company policy does not allow to use binaries, but we need to compile packages ourselves (so we can fork and patch if needed). Anyway ... running pip wheel on numpy==1.17.3 or pandas 2.0.3 (using latest oldest-supported-numpy - https://github.com/pandas-dev/pandas/blob/v2.0.3/pyproject.toml) is failing because of invalid default mac version target on some systems. From what I understand everytime Apple releases new major OS version:
results in: So when you build on 13 ... you get a number instead of a string and this breaks compilation. Another issue explaining why this is broken on some OS versions: I will try setting MACOSX_DEPLOYMENT_TARGET if this will help. |
Ah that helps, thank you. Using I don't really want to change this package, because it can potentially break other workflows/packages that rely on it. |
I tried with: but not a single combination works ... this happens on python 3.8 (that we need) ... python 3.9 seems to build successfully One or another:
when using both:
Based on https://endoflife.date/numpy it is hard to target anything older than 1.22 since it is no longer supported. |
That's security support date that someone arbitrarily put at 2 years. That's wrong, but either way it's not really relevant for a build-time-only requirement.
I have no idea what is going on there, looks like a bug in I have a macOS arm64 machine with macOS 13.3. I can run Do you have a standalone reproducer? |
It is only relevant if you cannot build it :) So I have Mac OSX 13.5.1 (22G90). python3 -m sysconfig | grep MACOSX_DEPLOYMENT_TARGET ➜ ~ xcode-select --version
|
Yes it is bug in a wheel indeed but it is specified too old in numpy. It is issue when building 1.20.0: I assume neither 1.17 nor 1.20 won't be fixed EVER by numpy team. Reproducable for second issue:
|
One idea for this project future and easier usage/upgrades would be to replace all versions (that are 1.19.x & >=py3.9)
ALTERNATIVE: I don't know if you can have multiple ranges that work with setup tools (maybe >= and then exclude all version up to 1.25.*:
For most platforms you would then just pick best numpy version with best OS compatibility and STILL retain backwards compatibility :) Could be win win :D |
The 1.19/1.20 build issues due to dependencies are a class of problems that can't really be fixed in this package, since we must target the oldest version that works / has wheels (module the 1.25 and up changes). There's always a workaround though, by turning off build isolation and installing your desired
This is a good idea in principle though, and while it's a major change I think we should adopt some version of this. It's related to gh-76, I'll copy your comment there since it's a generic improvement rather than being specific to the macOS Intel on Python 3.8 issue. |
Due to a bug:
numpy/numpy#17987
It is not possible to build numpy on intel on version lower than 1.20.
I propose dropping arm requirement for darwin and let 1.21 for both ... intel and m1.
Current numpy for mac intel
The text was updated successfully, but these errors were encountered: