Windows versions of Python---pros and cons?

Andrae Muys amuys at shortech.com.au
Mon Jun 24 21:50:49 EDT 2002


Tom Loredo <loredo at astro.cornell.edu> wrote in message news:<3D124575.2A1393FF at astro.cornell.edu>...
> Fernando Pérez wrote:
> > 
> > Don't know if there's a misunderstanding here: 
> 
> Very likely!  (On my part!)
> 
> > cygwin is a unix-like
> > environment under Windows. 
> 
> Okay, my concern was that it wouldn't work with or be able to produce
> Windows binaries---like if I had to produce binary extension modules
> to ship to others, or a McMillan-ized install that used PythonWin
> and Tk or wxWindows.  Cygwin is so huge that I got the impression
> it was a self-contained "subenvironment" so to speak, so I didn't
> realize I could use it to produce stuff that non-cygwin Windows users
> could use.
> 

It is important to differentiate between the cygwin environment, and
the cygwin platform itself.  At its core cygwin is a dll that provides
a port of most of the POSIX API to W32.  On top of this, cygwin also
offers a host of other API's common on various unix platforms ported
to the cygwin.dll 'unix platform'.  On top of these libraries the
cygwin environment is assembled out of all manner of common unix
programs, utilities, servers, etc built using these libraries and the
cygwin.dll.

The environment is huge.  Considering that a full install includes
ports of XFree86, TeX, gcc & libs, python2.2, perl5.6.1, a full
install == a LOT of bytes :).

The libraries however are a fraction of this size, consider a ls -l
*.dll on /bin (where cygwin keeps the libraries, I assume for windows
compat' sake)

$ ls -l *.dll | awk 'BEGIN { sum = 0 } { sum = sum + $5 } END { print
sum }'
8931012

$ ls -l cygwin1.dll
-rwxr-xr-x    1 Administ None       895304 Jun 24 12:33 cygwin1.dll

$ ls -l *.dll
-rwxr-xr-x    1 Administ None        46592 Jan 21 04:51 cygXpm-X4.dll
-rwxr-xr-x    1 Administ None        41984 Jan 21 04:51
cygXpm-noX4.dll
-rwxr-xr-x    1 Administ None        58880 May  7 16:36 cygbz2-1.dll
-rwxr-xr-x    1 Administ None       635904 May 17 22:25 cygcrypto.dll
-rwxr-xr-x    1 Administ None       333824 Jun 19 08:16 cygdb2.dll
-rwxr-xr-x    1 Administ None        51200 Mar 17 16:24 cygexslt-0.dll
-rwxr-xr-x    1 Administ None        46080 Apr 25  2001 cygform5.dll
-rwxr-xr-x    1 Administ None        35328 Jan  9 16:11 cygform6.dll
-rwxr-xr-x    1 Administ None        18944 Feb 20 13:06 cyggdbm.dll
-rwxr-xr-x    1 Administ None        19968 Jan 13 11:29
cyghistory5.dll
-rwxr-xr-x    1 Administ None        22016 Dec 13  2001 cygintl-1.dll
-rwxr-xr-x    1 Administ None        21504 Jun 21  2001 cygintl.dll
-rwxr-xr-x    1 Administ None        82944 Oct 20  2001 cygitcl30.dll
-rwxr-xr-x    1 Administ None        35328 Oct 20  2001 cygitk30.dll
-rwxr-xr-x    1 Administ None        45568 Feb  8 10:00 cygjbig1.dll
-rwxr-xr-x    1 Administ None       121856 Feb  9 15:21 cygjpeg6b.dll
-rwxr-xr-x    1 Administ None        26624 Apr 25  2001 cygmenu5.dll
-rwxr-xr-x    1 Administ None        19968 Jan  9 16:11 cygmenu6.dll
-rwxr-xr-x    1 Administ None       159232 Apr 25  2001
cygncurses++5.dll
-rwxr-xr-x    1 Administ None       179200 Jan  9 16:11
cygncurses++6.dll
-rwxr-xr-x    1 Administ None       230912 Apr 25  2001
cygncurses5.dll
-rwxr-xr-x    1 Administ None       206848 Jan  9 16:11
cygncurses6.dll
-rwxr-xr-x    1 Administ None        15360 Apr 25  2001 cygpanel5.dll
-rwxr-xr-x    1 Administ None        11776 Jan  9 16:11 cygpanel6.dll
-rwxr-xr-x    1 Administ None        41105 Nov 22  2001 cygpcre.dll
-rwxr-xr-x    1 Administ None        40251 Nov 22  2001
cygpcreposix.dll
-rwxr-xr-x    1 Administ None       175104 May  8 05:10 cygpng10.dll
-rwxr-xr-x    1 Administ None       179200 May 24 12:23 cygpng12.dll
-rwxr-xr-x    1 Administ None       174080 Jan 21 11:05 cygpng2.dll
-rwxr-xr-x    1 Administ None        22528 Jun  9 15:50 cygpopt-0.dll
-rwxr-xr-x    1 Administ None       123904 Jan 13 11:29
cygreadline5.dll
-rwxr-xr-x    1 Administ None        68016 Nov 21  2001 cygregex.dll
-rwxr-xr-x    1 Administ None       159744 May 17 22:25 cygssl.dll
-rwxr-xr-x    1 Administ None       399360 Oct 20  2001 cygtcl80.dll
-rwxr-xr-x    1 Administ None         4608 Oct 20  2001
cygtclpip80.dll
-rwxr-xr-x    1 Administ None        10240 Oct 20  2001
cygtclreg80.dll
-rwxr-xr-x    1 Administ None       258560 Feb 10 18:36 cygtiff3.dll
-rwxr-xr-x    1 Administ None       637952 Oct 20  2001 cygtk80.dll
-rwxr-xr-x    1 Administ None       895304 Jun 24 12:33 cygwin1.dll
-rwxr-xr-x    1 Administ None      1277440 Mar 17 13:56 cygxml2-2.dll
-rwxr-xr-x    1 Administ None       155136 Mar 17 16:23 cygxslt-1.dll
-rwxr-xr-x    1 Administ None        15360 Mar 17 16:24
cygxsltbreakpoint-1.dll
-rwxr-xr-x    1 Administ None        50688 Mar 12 14:38 cygz.dll
-rwxr-xr-x    1 Administ None        49664 Feb 25 13:33 libW11.dll
-rwxr-xr-x    1 Administ None       749056 Aug 22  2001
libperl5_6_1.dll
-rwxr-xr-x    1 Administ None       771584 Jan  1 06:26
libpython2.2.dll
-rwxr-xr-x    1 Administ None       204288 Oct 20  2001 tix4180.dll

As you can see the cygwin dll is only ~900k, while even the entire
porting environment (excluding X11R6) is < 9Mb (X11R6 is just over
4Mb).

So in most situations this is not imposing a signifigant overhead.

Andrae Muys



More information about the Python-list mailing list