<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 21, 2015 at 9:38 AM, Oscar Benjamin <span dir="ltr"><<a href="mailto:oscar.j.benjamin@gmail.com" target="_blank">oscar.j.benjamin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><br></div><div>I think it would be great to just package these up as wheels and put them on PyPI.</div></div></div></blockquote><div><br></div><div>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.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>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:<br><br></div><div>    pip install gotoblas  # Installs the BLAS library within Python dirs<br></div><div>    pip install numpy<br></div></div></div></blockquote><div><br></div><div>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.</div><div><br></div><div>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????</div><div><br></div><div>-Chris</div><div>  </div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div></div><div>You could have a BLAS distribution that is just a shim for a system BLAS that was installed some other way.<br><br></div><div>    pip install --install-option='--blaslib=/usr/lib/libblas' systemblas<br></div><div>    pip install numpy<br><br></div><div>That would give linux distros a way to provide the BLAS library that python/pip understands without everything being statically linked and without pip needing to understand the distro package manager. Also python packages that want BLAS can use the Python import system to locate the BLAS library making it particularly simple for them and allowing distros to move things around as desired.<br></div><div><br></div><div>I would like it if this were possible even without wheels. I'd be happy just that the commands to download a BLAS library, compile it, install it non-globally, and configure numpy to use it would be that simple. If it worked with wheels then that'd be a massive win.<br></div><div></div><div><br>--<br></div><div>Oscar<br></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>