I think Wheels are the way forward for Python dependencies. Perhaps not for things like fortran. I hope that the scientific community can start publishing wheels at least in addition too.
I don't believe that Conda will gain the mindshare that pip has outside of the scientific community so I hope we don't end up with two systems that can't interoperate. > On Dec 2, 2013, at 7:00 PM, Chris Barker <chris.bar...@noaa.gov> wrote: > > Side note about naming: > > I'm no expert, but I'm pretty sure "Anoconda" is a python distribution -- > python itself and set of pre-build packages. "conda" is the package manager > that is used by Anoconda -- kind of like rpm is used by RedHat -- conda is an > open-source project, and thus could be used by any of us completely apart > from the Anoconda distribution. > > > On Sun, Dec 1, 2013 at 3:38 PM, Paul Moore <p.f.mo...@gmail.com> wrote: >> > had to resort to Google to try to figure out what dev libraries I needed. >> >> But that's a *build* issue, surely? How does that relate to installing >> Nikola from a set of binary wheels? > Exactly -- I've mostly dealt with this for OS-X -- there are a cadre of users > that want binaries, and want them to "just work" -- we've had mpkg packages > for a good while, analogous to Windows installers. Binary eggs never worked > quite right, 'cause setuptools didn't understand "universal" binaries -- but > it wasn't that far from working. Not really tested much yet, but it ;looks > like binary wheels should be just fine. The concern there is that someone > will be running, say, a homebrew-built python, and accidentally install a > binary wheel built for the python.org python -- we should address that with > better platform tags (and making sure pip at least give a warning if you try > to install an incompatible wheel...) > > So what problem are we trying to solve here? > > 1) It's still a pain to actually build the packages -- similarly to Windows, > you really need to build the dependent libraries statically and link them in > - and you need to make sure that you build them with teh right sdk, and > universally -- this is hard to do right. > - does Conda help you do any of that??? > > 2) non-python binary dependencies: As it turns out, a number of python > packages depend on the same third-party non-python dependencies: I have quite > a few that use libpng, libfreetype, libhdf, ??? currently if you want to > distribute binary python packages, you need to statically link or supply the > dlls, so we end up with multiple coples of the same lib -- is this a problem? > Maybe not -- memory is pretty cheap these days, and maybe different packages > actually rely on different versions of the dependencies -- this way, at least > the package builder controls that. > > Anoconda (the distribution seems to address this by having conda packages > that are essentially containers for the shared libs, and other packages that > need those libs depend on them. I like this method, but it seems to me to be > more a feature of the Anoconda distribution than the conda package manager -- > in fact, I've been thinking of doing this exact same thing with binary wheels > -- I haven't tried it yet, but don't see why it wouldn't work. > >> I understand you are thinking about non-Python libraries, but all I >> can say is that this has *never* been an issue to my knowledge in the >> Windows world. > > yes, it's a HUGE issue in the Windows world -- in fact such a huge issue that > almost non one ever tries to build things themselves, or build a different > python distro -- so, in fact, when someone does make a binary, it's pretty > likely to work. But those binaries are a major pain to build! > > (by the way, over on python-dev there has been a recent discussion about > stackless building a new python2.7 windows binary with a newer MS compiler -- > which will then create exacty these issues...) > >> > Outside the scientific space, crypto libraries are also notoriously hard to >> > build, as are game engines and GUI toolkits. (I guess database bindings >> > could also be a problem in some cases) >> >> Build issues again... > > Yes, major ones. > > (another side note: you can't get wxPython for OS-X to work with Anoconda -- > there is no conda binary package, and python itself is not built in a way > that it can access the window manager ... so no, this stuff in NOT suddenly > easier with conda.) > >> Again, can we please be clear here? On Windows, there is no issue that >> I am aware of. Wheels solve the binary distribution issue fine in that >> environment > > They will if/when we make sure that the wheel contains meta-data about what > compiler (really run-time version) was used for the python build and wheel > build -- but we should, indeed, do that. > >> > This is why I suspect there will be a better near term effort/reward >> > trade-off in helping the conda folks improve the usability of their >> > platform >> > than there is in trying to expand the wheel format to cover arbitrary >> > binary >> > dependencies. > > and have yet anoto=her way to do it? AARRG! I'm also absolutely unclear on > what conda offers that isn't quite easy to address with binary wheels. And it > seems to need help too, so it will play better with virtualenv.... > > If conda really is a better solution, then I suppose we could go deprecate > wheel before it gets too much "traction"...;-) But let's please not another > one to the mix to confuse people. > >> Excuse me if I'm feeling a bit negative towards this announcement. >> I've spent many months working on, and promoting, the wheel + pip >> solution, to the point where it is now part of Python 3.4. > > And I was really lookingn forward to it as a solution for OS-X too.... > >> I'm hoping I've misunderstood here. Please clarify. Preferably with >> specifics for Windows (as "conda is a known stable platform" simply >> isn't true for me...) - I accept you're not a Windows user, so a >> pointer to already-existing documentation is fine (I couldn't find any >> myself). > > I appreciate the Windows viewpoint -- and I think we really do want one > solution for all. > > The linux distros already do all this let them keep doing it.... > > -Chris > > PS: a number of scipy-related packages have been promoting Anoconda and > Canopy as a way to get their package without dealing with building (rather > than say, providing binary wheels). That works great for the SciPy Stack, but > has NOT worked well for others. My example: > > I'm teaching an Intro to Python class -- I really like iPython, so have been > using it for demos and recommend it to Students. The IPython web site makes > it look like you really need to go get Anaconda or Canopy if you want iPython > -- so a number of my students went and did that. All well. Until I did the > extra class on wxPython, and now I've got a bunch of students that have no > way to install it. And they mostly had no idea that they were running a > different Python at all... > > Anyway -- this is a mess, particularly on OS-X (now we have python binaries > from: Apple, python.org, fink, macports, homebrew, Anaconda, Canopy, ???) So > yes, we need a solution, but I think binary wheels are a pretty good one, and > I'm not sure what conda buys us... > > > > -- > > Christopher Barker, Ph.D. > Oceanographer > > Emergency Response Division > NOAA/NOS/OR&R (206) 526-6959 voice > 7600 Sand Point Way NE (206) 526-6329 fax > Seattle, WA 98115 (206) 526-6317 main reception > > chris.bar...@noaa.gov > _______________________________________________ > Distutils-SIG maillist - Distutils-SIG@python.org > https://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig