| Store | Cart

Re: [Distutils] Working toward Linux wheel support

From: Nate Coraor <n...@bx.psu.edu>
Wed, 12 Aug 2015 16:21:27 -0400
Hello all,

I've implemented the wheel side of Nick's suggestion from very early in
this thread to support a vendor-providable binary-compatibility.cfg.

  https://bitbucket.org/pypa/wheel/pull-request/54/

If this is acceptable, I'll add support for it to the pip side. What else
should be implemented at this stage to get the PR accepted?

Thanks,
--nate

On Tue, Jul 28, 2015 at 12:21 PM, Wes Turner <wes....@gmail.com> wrote:

>> On Jul 28, 2015 10:02 AM, "Oscar Benjamin" <osca...@gmail.com>> wrote:> >> > On Fri, 24 Jul 2015 at 19:53 Chris Barker <chri...@noaa.gov> wrote:> >>> >> On Tue, Jul 21, 2015 at 9:38 AM, Oscar Benjamin <> osca...@gmail.com> wrote:> >>>> >>>> >>> I think it would be great to just package these up as wheels and put> them on PyPI.> >>> >>> >> that's the point -- there is no way with the current spec to specify a> wheel dependency as opposed to a package dependency. i.e this particular> binary numpy wheel depends on this other wheel, whereas the numpy source> pacakge does not have that dependency -- and, indeed, a wheel for one> platform may have different dependencies that\n other platforms.> >> >> > I thought it was possible to do this with wheels. It's already possible> to have wheels or sdists whose dependencies vary by platform I thought.> >> > The BLAS dependency is different. In particular the sdist is compatible> with more cases than a wheel would be so the built wheel would have a more> precise requirement than the sdist. Is that not possible with> pip/wheels/PyPI or is that a limitation of using setuptools to build the> wheel?> >> >>>> >>> So numpy could depend on "blas" and there could be a few different> distributions on PyPI that provide "blas" representing the different> underlying libraries. If I want to install numpy with a particular one I> can just do:> >>>> >>>     pip install gotoblas  # Installs the BLAS library within Python> dirs> >>>     pip install numpy> >>> >>> >> well,different implementations of BLAS are theoretically ABI> compatible, but as I understand it, it's not actually that simple, so this> is particularly challenging.> >>> >>> >> But if it were, this would be a particular trick, because then that> numpy wheel would depend on _some_ BLAS wheel, but there may be more than> one option -- how would you express that????> >> >> > I imagined having numpy Require "blas OR openblas". Then openblas> package Provides "blas". Any other BLAS library also provides "blas". If> you do "pip install numpy" and "blas" is already provided then the numpy> wheel installs fine. Otherwise it falls back to installing openblas.> >> > Potentially "blas" is not specific enough so the label could be> "blas-gfortran" to express the ABI.>> BLAS may not be the best example, but should we expect such linked> interfaces to change over time? (And e.g. be versioned dependencies with> shim packages that have check functions)?>> ... How is an ABI constraint different from a package dependency?>> iiuc, ABI tags are thus combinatorial with package/wheel dependency> strings?>> Conda/pycosat solve this with "preprocessing selectors" :> http://conda.pydata.org/docs/building/meta-yaml.html#preprocessing-selectors> :>> ```> linux True if the platform is Linux> linux32 True if the platform is Linux and the Python architecture is 32-bit> linux64 True if the platform is Linux and the Python architecture is 64-bit> armv6 True if the platform is Linux and the Python architecture is armv6l> osx True if the platform is OS X> unix True if the platform is Unix (OS X or Linux)> win True if the platform is Windows> win32 True if the platform is Windows and the Python architecture is 32-bit> win64 True if the platform is Windows and the Python architecture is 64-bit> py The Python version as a two digit string (like '27'). See also the> CONDA_PY environment variable below.> py3k True if the Python major version is 3> py2k True if the Python major version is 2> py26 True if the Python version is 2.6> py27 True if the Python version is 2.7> py33 True if the Python version is 3.3> py34 True if the Python version is 3.4> np The NumPy version as a two digit string (like '17'). See also the> CONDA_NPY environment variable below.> Because the selector is any valid Python expression, complicated logic is> possible.> ```>> >> > --> > Oscar> >> > _______________________________________________> > Distutils-SIG maillist  -  Dist...@python.org> > https://mail.python.org/mailman/listinfo/distutils-sig> >>> _______________________________________________> Distutils-SIG maillist  -  Dist...@python.org> https://mail.python.org/mailman/listinfo/distutils-sig>>

_______________________________________________
Distutils-SIG maillist  -  Dist...@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Recent Messages in this Thread
Nate Coraor Jul 16, 2015 05:41 pm
Nick Coghlan Sep 06, 2015 11:32 pm
Nick Coghlan Sep 05, 2015 02:56 am
Marcus Smith Sep 07, 2015 04:11 am
Nate Coraor Sep 03, 2015 05:22 pm
Nick Coghlan Sep 07, 2015 04:26 am
Daniel Holth Aug 20, 2015 07:22 pm
Donald Stufft Aug 20, 2015 07:25 pm
Donald Stufft Sep 02, 2015 11:45 pm
Daniel Holth Sep 03, 2015 12:15 pm
Nate Coraor Aug 24, 2015 03:03 pm
Wes Turner Aug 24, 2015 05:51 pm
Nick Coghlan Jul 17, 2015 08:22 am
Chris Barker Jul 17, 2015 03:36 pm
Antoine Pitrou Jul 17, 2015 03:46 pm
Chris Barker Jul 17, 2015 03:53 pm
Andrea Bedini Jul 18, 2015 07:00 am
Tres Seaver Jul 21, 2015 03:25 am
Leonardo Rochael Almeida Jul 21, 2015 03:07 pm
Marcus Smith Jul 17, 2015 04:50 pm
Olivier Grisel Jul 17, 2015 06:34 pm
Daniel Holth Jul 17, 2015 08:18 pm
Chris Barker - NOAA Federal Jul 18, 2015 01:13 am
Daniel Holth Jul 18, 2015 02:11 am
Paul Moore Jul 18, 2015 11:51 am
Nick Coghlan Jul 20, 2015 05:50 am
Chris Barker Jul 20, 2015 05:37 pm
Paul Moore Jul 20, 2015 06:37 pm
Nick Coghlan Jul 27, 2015 02:19 pm
Nate Coraor Jul 27, 2015 07:07 pm
Oscar Benjamin Jul 21, 2015 04:38 pm
Chris Barker Jul 24, 2015 06:52 pm
Oscar Benjamin Jul 28, 2015 03:02 pm
Wes Turner Jul 28, 2015 04:21 pm
Nate Coraor Aug 12, 2015 08:21 pm
Robert Collins Aug 12, 2015 11:49 pm
Nathaniel Smith Aug 13, 2015 01:05 am
Nate Coraor Aug 13, 2015 02:07 pm
Leonardo Rochael Almeida Aug 13, 2015 07:30 pm
Wes Turner Aug 13, 2015 07:43 pm
Nathaniel Smith Aug 14, 2015 01:47 am
Wes Turner Aug 14, 2015 01:50 am
Nathaniel Smith Aug 14, 2015 02:33 am
Wes Turner Aug 14, 2015 02:41 am
Leonardo Rochael Almeida Sep 08, 2015 07:18 pm
Donald Stufft Sep 08, 2015 07:22 pm
Leonardo Rochael Almeida Sep 08, 2015 07:39 pm
Nathaniel Smith Aug 14, 2015 01:25 am
Robert Collins Aug 14, 2015 01:31 am
Wes Turner Aug 14, 2015 01:38 am
Robert Collins Aug 14, 2015 01:44 am
Wes Turner Aug 14, 2015 01:44 am
Nathaniel Smith Aug 14, 2015 02:14 am
Wes Turner Aug 14, 2015 02:24 am
Robert Collins Aug 14, 2015 02:27 am
Nathaniel Smith Aug 14, 2015 07:38 am
David Cournapeau Aug 13, 2015 05:52 pm
Nathaniel Smith Aug 14, 2015 04:07 am
Chris Barker Aug 14, 2015 04:04 pm
David Cournapeau Aug 14, 2015 04:20 pm
Chris Barker Aug 14, 2015 04:00 pm
Leonardo Rochael Almeida Jul 20, 2015 01:42 am
Nick Coghlan Jul 20, 2015 06:00 am
Chris Barker Jul 20, 2015 05:39 pm
Marcus Smith Sep 06, 2015 04:09 pm
Nick Coghlan Sep 05, 2015 08:35 am
Nick Coghlan Sep 05, 2015 06:44 am
Nick Coghlan Sep 05, 2015 06:43 am
Nathaniel Smith Sep 05, 2015 06:46 am
Donald Stufft Sep 05, 2015 03:06 am
Wes Turner Sep 08, 2015 07:14 pm
Daniel Holth Sep 08, 2015 07:32 pm
Nathaniel Smith Sep 09, 2015 11:49 pm
Nate Coraor Sep 21, 2015 03:33 pm
Nate Coraor Sep 09, 2015 03:06 pm
Donald Stufft Sep 08, 2015 06:33 pm
Donald Stufft Sep 07, 2015 04:02 pm
Marcus Smith Sep 07, 2015 05:51 pm
Wes Turner Sep 07, 2015 10:16 pm
Nate Coraor Sep 03, 2015 02:04 pm
Daniel Holth Sep 03, 2015 01:56 pm
Antoine Pitrou Aug 20, 2015 07:51 pm
Nate Coraor Aug 20, 2015 07:40 pm
Donald Stufft Aug 20, 2015 07:19 pm
Antoine Pitrou Aug 20, 2015 07:14 pm
Steve Dower Aug 14, 2015 04:17 pm
Daniel Holth Aug 20, 2015 06:38 pm
Chris Barker Aug 14, 2015 08:16 pm
Alexander Walters Aug 14, 2015 10:32 pm
Nate Coraor Aug 20, 2015 06:26 pm
Nick Coghlan Sep 05, 2015 02:12 am
Daniel Holth Sep 01, 2015 01:57 pm
Wes Turner Aug 26, 2015 01:42 am
Nate Coraor Aug 27, 2015 07:21 pm
Ben Finney Sep 06, 2015 11:42 pm
Messages in this thread