This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: On OS-X the directories searched by setup.py for Tk are in the wrong order.
Type: compile error Stage: resolved
Components: Build Versions: Python 3.1, Python 3.2, Python 2.7
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: BreamoreBoy, MLModel, ronaldoussoren
Priority: normal Keywords:

Created on 2009-01-02 23:50 by MLModel, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (3)
msg78904 - (view) Author: Mitchell Model (MLModel) Date: 2009-01-02 23:50
In function detect_tkinter_darwin of setup.py framework_dirs should be 
the reverse of what it is: first the user's library should be searched, 
then /Library, and finally /System/Library.  If Tk 8.5 is installed in 
/Library or ~/Library make will otherwise find the headers from 8.4 but 
the libraries from 8.5.

Issue 4017 discusses this problem, among others, and is marked fixed, 
but it is still incorrect in the 2.6 and 3.0 downloads as well as in the 
trunk, 3.0, and 3.1 subversion repositories.  It may have been "fixed" 
in so far as someone was able to make a .dmg by manually altering 
setup.py, and that's great, but it isn't fixed in the source and the 
problem will reappear with each new version.
msg109604 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2010-07-08 21:09
I've no idea whether this is still a problem.
msg111446 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2010-07-24 10:32
This issue is no longer valid, the current search order from setup.py:


    def detect_tkinter_darwin(self, inc_dirs, lib_dirs):
        # The _tkinter module, using frameworks. Since frameworks are quite
        # different the UNIX search logic is not sharable.
        from os.path import join, exists
        framework_dirs = [
            '/Library/Frameworks',
            '/System/Library/Frameworks/',
            join(os.getenv('HOME'), '/Library/Frameworks')
        ]

        sysroot = macosx_sdk_root()

This matches the order in which the linker searches.
History
Date User Action Args
2022-04-11 14:56:43adminsetgithub: 49063
2010-07-24 10:32:38ronaldoussorensetstatus: open -> closed
resolution: out of date
messages: + msg111446

stage: needs patch -> resolved
2010-07-08 21:09:05BreamoreBoysetversions: + Python 3.2, - Python 2.6, Python 3.0
nosy: + BreamoreBoy, ronaldoussoren

messages: + msg109604

stage: needs patch
2009-01-02 23:50:05MLModelcreate