[Distutils] Handling the binary dependency management problem

Paul Moore p.f.moore at gmail.com
Sun Dec 1 14:10:42 CET 2013


On 1 December 2013 04:15, Nick Coghlan <ncoghlan at gmail.com> wrote:
> 2. For cross-platform handling of external binary dependencies, we
> recommend boostrapping the open source conda toolchain, and using that
> to install pre-built binaries (currently administered by the Continuum
> Analytics folks). Specifically, commands like the following should
> work on POSIX systems without needing any local build machinery, and
> without needing all the projects in the chain to publish wheels: "pip
> install conda && conda init && conda install ipython"

Hmm, this is a somewhat surprising change of direction. You mention
POSIX here - but do you intend this to be the standard approach on
Windows too?

Just as a test, I tried the above, on Python 3.3 on Windows 64-bit.
This is python.org python, installed in a virtualenv. I'm just going
off what you said above - if there are more explicit docs, I can try
using them (but I *don't* want to follow the "official" Anaconda docs,
as they talk about using Anaconda python, and about using conda to
manage environments, rather than virtualenv).

pip install conda worked OK, but it installed a pure-Python version of
PyYAML (presumably because the C accelerator needs libyaml, so can't
be built without a bit of extra work - that's a shame but see below).
conda init did something, no idea what but it seemed to be fine.
conda install ipython then worked, it seems to have installed a binary
version of pyyaml.

Then, however, yaml install numpy fails:

    >conda install numpy
    failed to create process.

It looks like the binary yaml module is broken. Doing "import yaml" in
a python session gives a runtime error "An application has made an
attempt to load the C runtime library incorrectly".

I can report this as a bug to conda, I guess (I won't, because I don't
know where to report conda bugs, and I don't expect to have time to
find out or help diagnose the issues when the developers investigate -
it was something I tried purely for curiosity). But I wouldn't be
happy to see this as the recommended approach until it's more robust
than this.

Paul


More information about the Distutils-SIG mailing list