[Numpy-discussion] 1.8.1rc1 on sourceforge.

Matthew Brett matthew.brett at gmail.com
Thu Mar 6 16:14:25 EST 2014


Hi,

On Thu, Mar 6, 2014 at 12:36 PM, Chris Barker <chris.barker at noaa.gov> wrote:
> On Thu, Mar 6, 2014 at 11:38 AM, Matthew Brett <matthew.brett at gmail.com>
> wrote:
>>
>> pypi is accepting wheels:
>>
>> http://pythonwheels.com/
>> https://pypi.python.org/pypi/pyzmq/14.0.1
>>
>> Chris B - any comments here?
>
>
> It's my understanding that pypi accepts wheels built for the python.org
> releases -- and pip should be able to get the right ones in that case.
>
>  As far as I know, it's up to the project managers to decide what to put up
> there.
>
> Also, I _think_ that macports, homebrew, and hopefully the Apple builds,
> won't match to the python.org names, so people won't accidentally get a
> mis-matched binary wheel.

I believe that the wheels built against python.org python will in any
case work with system python.

I've just tested the wheel I built [1] on a 10.7 machine in a system
python virtualenv - all tests pass.

In any case, unless we do something extra, the built wheel won't
install into system python by default, because the wheel name can't
match the name system python expects. Here I tested the situation I'd
expect when the wheel is on pypi, by downloading the wheel to the
current directory of a 10.7 machine and:

pip install --pre --find-links . numpy

pip doesn't accept the wheel and starts a source install.  This is
because of the platform tag [2].  System python expects a platform tag
that matches the result of `distutils.util.get_platform()`.  The
python.org builds always have `10_6_intel` for this.  On a 10.7
machine:

$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python -c
"import distutils.util; print(distutils.util.get_platform())"
macosx-10.6-intel

$ /Library/Frameworks/Python.framework/Versions/3.3/bin/python3 -c
"import distutils.util; print(distutils.util.get_platform())"
macosx-10.6-intel

System python has the actual OSX version.  On 10.7 again:

$ /usr/bin/python -c "import distutils.util;
print(distutils.util.get_platform())"
macosx-10.7-intel

On 10.9:

$ /usr/bin/python -c "import distutils.util;
print(distutils.util.get_platform())"
macosx-10.9-intel

In fact, if I rename my wheel from
`numpy-1.8.1rc1-cp27-none-macosx_10_6_intel.whl` to
`numpy-1.8.1rc1-cp27-none-macosx_10_6_intel.macosx_10_7_intel.whl`,
system python will pick up this wheel, but obviously this could get
boring for lots of OSX versions, and in any case, it's not really our
target market for the wheels.  [4]

Min RK actually has a pull request in to relax this OSX version
specificity [3] because the wheels should be (and seem to be)
interoperable, but the take-home is that we're not likely to run into
trouble with system python.

Cheers,

Matthew

[1] http://nipy.bic.berkeley.edu/numpy-dist/numpy-1.8.1rc1-cp27-none-macosx_10_6_intel.whl
[2] http://legacy.python.org/dev/peps/pep-0425/
[3] https://github.com/pypa/pip/pull/1465
[4] http://legacy.python.org/dev/peps/pep-0425/#compressed-tag-sets



More information about the NumPy-Discussion mailing list