[Pythonmac-SIG] Lion

Ned Deily nad at acm.org
Fri Jul 22 01:26:41 CEST 2011


In article <nad-ADC32D.17270820072011 at news.gmane.org>,
 Ned Deily <nad at acm.org> wrote:
> The 64-bit/32-bin python.org installers (current releases are 3.2.1 and 
> 2.7.2) *should* work on 10.7 Lion.  I'm not so sure about the 
> traditional 32-bit-only ones (the 10.3+ ones). As with 10.6, I expect 
> you will need to install ActiveState Tcl/Tk 8.5 if you want to use 
> Tkinter or IDLE as there have been some recent fixes for Cocoa Tk.   I 
> just have completed downloading the official 10.7 release and should 
> have some preliminary results posted by tomorrow.

Here's my take on things after installing and some quick testing with 
10.7 Lion:

- If you were satisfied with using the Apple-supplied Pythons in 
previous OS X releases, you'll probably be satisfied with the 2.7, 2.6, 
or 2.5 system Pythons in 10.7.

- You should not rely on the Apple-suppled Pythons if you want to use 
IDLE.
   http://www.python.org/download/mac/tcltk/

- If you prefer to use more recent Pythons and have been satisfied with 
python.org OS X installers, use the most recent 3.2.1 or 2.7.2 
64-bit/32-bit (x86-64 / i386) installers for Mac OS X:
   http://www.python.org/download/
As with 10.6, if you are planning to use IDLE or Tkinter with these 
installers, you should also install the most recent ActiveTcl 8.5 if you 
can (check the license terms):
   http://www.activestate.com/activetcl/downloads

- If you need to install any Python packages that build C extension 
modules, you'll need to install Xcode for Lion (currently 4.1 and now 
available for free download through the Mac App store).

- The traditional python.org 32-bit-only 10.3+ (i386/PPC) Pythons can be 
installed on 10.7 and do work in general; however, it is not practical 
to build C extension modules on 10.7 that will work with them (since 
Xcode 4 no longer includes the 10.4u SDK nor gcc-4.0).  Unless you have 
specialized needs and know what you are doing, you should avoid using 
the traditional 32-bit-only installers on 10.7 in favor of either using 
the 64-bit/32-bit variants, using versions from a different distributor, 
or building your own.  As on 10.6, if you need to run in 32-bit mode, 
you can use "python3.2-32" or "python2.7-32" with the 64-bit/32-bit 
variants.



Random details:

Apple ships 10.7 with 3 system Pythons:

/usr/bin/python2.7
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on 
darwin
/usr/bin/python2.6
Python 2.6.6 (r266:84292, Jun 16 2011, 16:59:16) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on 
darwin
/usr/bin/python2.5
Python 2.5.5 (r255:77872, Jun 16 2011, 16:58:16) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on 
darwin

The 2.7 and 2.6 instances are 2-way Intel universal binaries (x86_64 and 
i386); the 2.5 one is i386 (32-bit) only.  The 2.7 version, at least, 
comes pre-installed with various 3rd-party packages, like setupttols, 
PyObjC, py2app, numpy, twisted, Zope, etc, similar to what was shipped 
for 2.6 in 10.6.  (I didn't look at the 2.6 and 2.5 frameworks.)  The 
downside of shipping these packages is that some, including Python 
itself, are not the latest versions.

Tcl/Tk:  As in 10.6, Apple ships two versions of Tcl/Tk: a Cocoa Tk 8.5 
and the venerable Carbon Tk 8.4.  The 8.5 version has been updated to 
8.5.9.  The Tkinters in all three Apple-supplied Pythons are linked with 
8.5.  The good news is that the updated 8.5 is not the disaster that the 
10.6 version was.  The bad news is that it is missing at least one fix 
to Tk from earlier this year:
Cocoa Tk crashes when typing a composite character into a text field 
(http://sourceforge.net/tracker/index.php?func=detail&aid=2907388&group_i
d=12997&atid=112997).  The fix for this crash is incorporated into the 
most recent ActiveTcl 8.5 releases for OS X.  However, the system 
Pythons will not attempt to dynamically link to user-installed Tcl/Tk 
frameworks in /Library (where the ActiveState frameowrks are installed), 
unlike the Pythons installed by python.org installers.  So, out of the 
box, the IDLE versions that come with the system Pythons are vulnerable 
to this.  But at least they aren't totally unusable as was the case with 
10.6.  And I suppose if there are enough bug reports this fix might get 
applied in a future 10.7 update.

Although it's not practical to build packages with C extension modules 
on 10.7 for the traditional 32-bit-only python.org Pythons (as explained 
above), it is possible to build such packages with the same Python 
installed on a 10.6, 10.5, or even 10.4 system, create a Distutils bdist 
or setuptools/Distribute bdist-egg and then install the binary 
distribution on the 10.7 system.  I would avoid going down that path if 
possible, unless it is needed as a temporary transition phase.

-- 
 Ned Deily,
 nad at acm.org



More information about the Pythonmac-SIG mailing list