I'm not sure what will be needed to get the PR accepted; At PyCon AU
Tennessee Leuwenberg started drafting a PEP for the expression of
dependencies on e.g. BLAS - its been given number 497, and is in the
packaging-peps repo; I'm working on updating it now.
On 13 August 2015 at 08:21, Nate Coraor <n...@bx.psu.edu> wrote:
> 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>
--
Robert Collins <rbtc...@hp.com>
Distinguished Technologist
HP Converged Cloud
_______________________________________________
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 |
Re: [Distutils] Working toward Linux wheel support |
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 |