From: Erik B. <eri...@gm...> - 2012-10-04 05:36:43
|
On Wed, Oct 3, 2012 at 9:10 PM, Michael Droettboom <md...@st...> wrote: > On 10/03/2012 05:26 PM, Erik Bray wrote: >> On 10/03/2012 12:20 PM, Michael Droettboom wrote: >>> I invite comments for a new MEP about improving the situation with >>> respect to our bundling of third-party Python dependencies. >>> >>> In particular, I'd love feedback from the various stakeholders -- those >>> producing binary installers and packages for the various platforms. >>> >>> https://github.com/matplotlib/matplotlib/wiki/MEP11 >>> >>> Mike >> >> +1 Let me know if you need/want any help with any distribute or pip >> intricacies. >> >> As for Windows, I need to double check, but I believe bdist_wininst >> installers generated by setuptools/distribute do support installing >> dependencies from PyPI. >> >> Regarding Numpy: I'm not sure, does Matplotlib require Numpy at build >> time? I'm guessing probably yes, but if not it can also be installed >> by easy_install or pip. IIRC easy_install will install one of the >> pre-built binary eggs. pip only installs/builds from source which can >> be problematic sometimes. Though I fixed Numpy a while back to be >> installable by pip so it *does* work so long as Numpy can be built on >> your system. > > Numpy is required at build time (matplotlib C++ extensions need to > include Numpy's headers), but I had assumed if it was a requirement, it > would get installed first and then we'd be ok to proceed. Is that not > how pip works? > > Mike Yes/no. Pip does install dependencies first, but they aren't available at run-time of the setup.py of the dependent package--unfortunate but mostly true. I've been meaning to see if I can fix that. And easy_install of course is flawed in that it installs dependencies afterwards. easy_install does support setup_requires for downloading and adding packages to the path when running setup.py, but this does *not* work with Numpy. So as you wrote in the MEP, Numpy will simply have to be installed separately, I think, if the C++ modules require the Numpy headers. Erik |