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
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 |
Re: [Distutils] Working toward Linux wheel support |
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 |