-
Notifications
You must be signed in to change notification settings - Fork 87
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
hardcoded MB_PYTHON_OSX_VER #278
Comments
Sure. As of a few days ago, the default behavior is to use 10.9 by default for Python 3.8 and later - is that what you are suggesting? |
A bit further than that - it would be to use 10.9 by default for all python versions where it is available - 2.7.15+ and 3.6+. So for normal use cases it would not be neccessary to use |
ping @matthew-brett - I have the MR for this and 2 others pending, any chance they will be merged soon? pls let me know if i need to change anything |
I'm not sure what's the recommended MB_PYTHON_VERSION now. Say a project of mine only supports Python 3.6+ (and I don't care about 32 bit), should I set the MB_PYTHON_VERSION=10.9 for the py3.6 and py3.7 builds? |
I guess the issue with 10.6 vs 10.9 as the default installer is that the 10.6 wheels will at least appear to be |
I see, thanks. So I guess it makes sense to continue building for 10.6 "intel" wherever possible, since it's going to work on either 32 or 64-bit pythons. |
@robbuckley - sorry - I didn't check - but do your changed default to 10.6 where possible? I thought they default to 10.9 ? |
@matthew-brett @anthrotype I wouldnt reccomend 10.6 as a default, as it can have problems with newer macOS SDK versions - see pandas-dev/pandas#23424 The default should be 10.9 / x86_64, with 10.6 / intel to support older python versions where needed (e.g. 3.5 and before, or anything before 2.7.15) With https://github.com/matthew-brett/multibuild/pull/279 the reccomendation for user projects is not to set The end user can override that by setting In practise that would only be needed if you want to target 10.6 where a 10.9 build is available (for example for 3.6.8). The only use case i could think of for that is if there is a system python which targets 10.6 where python.org provides a 10.9 build for the same version. FYI my system python (macOS 10.5.1 with Xcode 11.2.1) is 2.7.16 with distutils tag |
@anthrotype if you are targetting MB_PYTHON_VER=3.6 it should default to 10.9, you dont need to set it see https://github.com/robbuckley/multibuild/blob/0ecd047469cb4af0563c9bb4beef4f2fce9dbb90/osx_utils.sh#L109 |
@robbuckley - do you agree, that the 10.9 shift will also result in reduced compatibility of the wheels, in that they will be 64-bit only, and won't install to 32/64-bit Pythons, which are still pretty common? Am I right in thinking that the problem with building for 10.6 is that it generates a requirement for |
@matthew-brett I've previously found pip rules to be quite lax: https://github.com/matthew-brett/multibuild/pull/224#issue-250238516:
Unfortunately I cant seem to replicate that now - all my python environments report I may have access to an older mac system over christmas, which i could try this on. Or i could try to set up a test on travis. And yes the issue Im aware of with running 10.6 builds on current systems is that since xcode 10, |
My 10.14 system Python is Intel. I think you'll find that installing the 10.6 Python 3.7 from Python.org will give you an Intel Python too - that's what I get installing the latest Python 3.7 from Python.org on my 10.15.1 system. I think that means that there are a lot of At the moment, I think we're in a situation where it's easier to make a less-useful wheel by mistake, using the 10.9 default. |
I managed to install the 10.6 intel flavour of python 3.7.3 from python.org. This seems quite happy to install a 10.9 x86_64 wheel:
checking on tags that pip claims to support:
basically, everything. Looking through the pip source, I think it defaults to declaring support for macOS wheels up to the system version which its currently running on (10.15 here) rather than see: |
This has to do with the |
@matthew-brett I am just catching up with this so apologies as its probably all old news to you. pip since version 8.0 allows mac wheels to be installed where the wheel's macOS SDK tag <= that of the system on which its running. Prior to this change pypa/pip#3232 it was much more restrictive, only permitting wheels with tag <= python interpreter. So a wheel tagged @mattip The OpenCV issue you link to doesnt state how it was installed -- that kind of issue should be avoided if we make sure wheels are correctly tagged with a macOS version >= that of |
Yes - I did know about the 8.0 change, allowing you to install e.g 10.12 wheels on an e.g. 10.13 system, regardless of Python SDK. That was the reason we removed the wheel renaming a little while ago in a198d0e I'm really surprised, though, that pip allows installing an x86_64 wheel on an That being so, I agree, changing to 10.9 by default is the way to go. |
I think that works because pip's platform checking doesnt get the arch for compatibility purposes from the interpreter ( On my system pip reports 64bit:
What I think this means is that pip will only refuse to install a |
I'm totally OK with the wheels failing for Python in 32-bit mode - I just don't think there's anyone using that nowadays. |
OK - in it goes. We live in hope. |
it seems a bit clumsy from a user PoV to have to remember that the default macOS version is hardcoded to 10.6 (10.9 for python 3.8). I've got a PR that derives a sensible default from MB_PYTHON_VERSION -- namely the newest build for which python.org provides a build on https://www.python.org/downloads/mac-osx/. OK to submit @matthew-brett ?
The text was updated successfully, but these errors were encountered: