[Distutils] PEP for dependencies on libraries like BLAS

Tennessee Leeuwenburg tleeuwenburg at gmail.com
Fri Sep 18 02:15:31 CEST 2015


Hi all,

Sorry for the necropost :) "Life" has been happening and I wasn't
monitoring the discussion of the dependency PEP for a while. I have been
reviewing the discussion here. I thought I'd clear up a few things from my
perspective.

Regarding practical examples:
https://youtu.be/Fqknoni5aX0?list=PLs4CJRBY5F1KMMpoEWMuBRvHvjBJeAJoS&t=371
Here is Lex Hider demonstrating some of the issues he faced. I don't think
he ran into BLAS issues as such, but it shows how much work can be required
to install some packages. At some point I should take a transcript of this
and write it up as a post, and adjust the PEP to use this as a real-world
motivating argument to remove argument about whether the underlying problem
of external dependencies is a 'real' problem or not. I fully agree it is
important to have a genuine example, and that would be a big improvement.

Regarding the connection to yum/deb/conda etc, my initial thought was
actually to specify package names rather than header files, but I was
convinced that supplying the missing header files was ultimately more
useful. This is, in part, because library names are more consistent than
package names across systems. On the other hand, I was still uncertain
about what happens if two libraries have the same name but different
functionality, you might want to refer to the package name instead.

Regarding whether this is a maintenance nightmare for authors who need to
understand a complex set of deploy environments. I don't really think so.
Typically, an author will have one 'primary' environment, often a Linux
platform, which will tend to 'just work' because the author is working in
that framework. Often, it's only a small number of dependencies that need
to be declared, and it's about giving package authors a 'release valve' to
manually handle exceptions where there are package issues.

Regarding 'boil the ocean' -- I think that's only true when this PEP is
taken to be trying to "solve all dependency interactions". In fact, it's
more about letting authors handle common, known issues on specific
platforms. That's my view anyway. I know if I had this for my packages,
just having one or two of these declared would handle a lot of problems.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20150918/d78a3e40/attachment.html>


More information about the Distutils-SIG mailing list