[Distutils] Packaging today

David Cournapeau cournape at gmail.com
Wed Jan 8 10:48:25 CET 2014


On Mon, Jan 6, 2014 at 9:55 PM, Chris Barker <chris.barker at noaa.gov> wrote:

> On Mon, Jan 6, 2014 at 12:26 PM, Steve Spicklemire <steve at spvi.com> wrote:
>
>
>> avoid troubling anyone with pesky questions. In that respect I've
>> apparently failed, because here comes the question!
>>
>
> I think this is a use case that  is quite useful for us all to chew on a
> bit...
>
> 1st -- yes "Anaconda" refers to the distribution from Continuum. Note that
> "conda" is the packaging system that Anaconda uses, but it can also be used
> independently of the distribution.
>
>
>> I'm helping out with a python package: vpython <http://vpython.org>
>
>
> [side note: fairly recently  a por tof VPython to wxPython was done -- is
> that what you are using? Notable because I think wxPython is still not
> available for Anaconda...)
>
>
>> and I'm also teaching an intro scientific computing class this spring.
>> I'm mostly a Mac/Linux user, but my students are often windows users. I
>> would love to permit my students to use enthought/canopy and/or continuum
>> analytics (C.A.) along with vpython.
>
>
> Either/or? As an instructor, I'd recommend you pick one and go with it --
> if you need wx, that means Canopy for now. Alternatively, you suggest the
> python.org builds, and point your users to binaries they can get
> elsewhere (Chris Gohlke's site for Windows...)
>
> At the moment we're creating binary releases of vpython for windows and
>> mac and posting them on sourceforge <
>> https://sourceforge.net/projects/vpythonwx/>.
>
>
> Are these for the python.org builds? good for you!
>
> Bruce has been building the windows binary using VC (no setup.py) in a way
>> that's compatible withpython.org python for windows. I've been building
>> the mac version using a setup.py script I cobbled together that works on
>> MacOSX and Linux.
>
>
> Why not distutils for building Windows? I find it really helpful.
>
>
>> I've noticed that the anaconda system that C.A. installs uses MinGW on
>> windows to build extensions.
>
>
> I think Canopy does that too -- at least it did a few years ago. but I
> _think_ you can build extensions with either MinGW or MSVC for the same
> binary python -- if it's set up right ;-)
>

We don't use mingw to build packages distributed within canopy (at least
not anymore). We build everything with MSVC 2008, as mixing mingw/MSVC
often causes trouble.

We do provide mingw so that people can build extensions without depending
on MS toolchain, but that's not a setup I would recommend in general. It
works well for extensions that don't depend much on the C runtime (numpy is
a good example), but as soon as you manipulate IO, etc... you encounter
issues linked to ABI incompatibilities between what you get from the python
runtime and mingw.

David

>
> I'd love to figure out how to build vpython under this system so that my
>> windows users could use them together transparently.
>
>
> You want to take a look at conda:
>
> https://github.com/pydata/conda
>
> If you can build a conda recipe then you are set to go...
>
> That being said, it is supposed to be a goal for Anaconda to be binary
> compatible with the python.org binaries -- so you may well be able to
> build the way you are, and give the users a way to install it into
> Anaconda. In theory, binary wheels are the way to do this.
>
> I'm pretty sure I could work out how to build vpython with continuum
>> analytics on the mac (which means building boost + wxPython using the C.A.
>> python).
>>
>
> ahh -- you are using wx -- I'd check with the CA folks and see where they
> are at -- they said they were working on a wxPython package....and I'm sure
> they'd like help and testing...
>
>
>> Is there any way, *today*, to incorporate dependencies on external
>> libraries (e.g., boost) in setup.py?
>>
>
> no -- except by hand with custom code.
>
>
> I'm still a little unclear on your goals here. If you want to simple be
> able to tell your students to use Anaconda  then look into conda and the CA
> help lists -- and conda is more or less designed to solve these sorts of
> problems. also, the odds are good that Anaconda already has boost, and if
> not someone has done a conda recipe for it:
>
> https://github.com/faircloth-lab/conda-recipes/tree/master/boost
>
> If you want your users to be able to use any of:
>
> Anaconda
> Python.org python
> Canopy
>
> Then I'd look into building binary wheels, and see if you can get them to
> work with Anaconda and Canopy.
>
> Note: distutils does not address the third-party non-python dependency
> problem -- conda tries does address it (though still not clear to me if it
> helps you build them...) You may also want to look at Gattai, which aims to
> help you build  them:
>
> http://sourceforge.net/projects/gattai/
>
> HTH,
>   -Chris
>
>
>
>
> --
>
> 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.Barker at noaa.gov
>
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20140108/3cadee13/attachment.html>


More information about the Distutils-SIG mailing list