Bob Ippolito wrote: > On Aug 11, 2005, at 6:15 AM, Samuel M. Smith wrote: >>if sys.platform=='darwin': >> if os.path.realpath(sys.executable).startswith('/System'): >> # This is when Python is from Apple framework >> opt.extend(["-Wl,-framework","-Wl,Python"]) >> #else we are running in Fink python. >> opt.extend(["-lcc_dynamic","-bundle"]) >>else: >> opt.append("-shared") >> >>Which looked like to me that someone had already accounted for the >>framework build so I didn't make any changes >>to setup.py > > Well, they tried to, but they did it wrong. It should be using a > more robust way for detecting a framework Python. Something like > 'Python.framework' in os.path.realpath(sys.executable)
Bob's exactly right (as usual) and I just feel the need to rant a little: This is really lame coding, and it's a pattern I see a lot: if ONE_WAY_TO_CHECK_FOR_ONE_THING: do this else: we MUST be doing what I have on my system! lame, and bug prone. At the very least, they could have done something like: if sys.platform=='darwin': if os.path.realpath(sys.executable).startswith('/System'): # This is when Python is from Apple framework opt.extend(["-Wl,-framework","-Wl,Python"]) elif (Do something to actually check for fink): opt.extend(["-lcc_dynamic","-bundle"]) else: raise Exception("You seem to have a python I haven't been configured for") else: opt.append("-shared") Would that be so hard? If they had done that, at least you would have gotten a clear message about what was wrong. Checking for fink could be a simple as: os.path.realpath(sys.executable).startswith('/sw'): That's not all that robust either, but it's a start. <\rant> -Chris -- Christopher Barker, Ph.D. Oceanographer NOAA/OR&R/HAZMAT (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception [EMAIL PROTECTED] _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig