[Pythonmac-SIG] Still trying to get matplotlib to compile

Bob Ippolito bob at redivi.com
Thu Jul 15 00:33:27 CEST 2004


distutils is only good at finding Python's compiler/linker settings and 
Python's headers.

matplotlib has custom code to find Tcl/Tk in its setup.py, and that 
custom code is not doing the right thing.  I suggest you bring this up 
with them, I don't have time to take a closer look.

-bob

On Jul 14, 2004, at 6:07 PM, Kenneth McDonald wrote:

> Many thanks to Bob Ippolito for his help--I've included my original
> message and his reply at the end of this message, for reference.
>
> After reading Bob's message, I looked into /usr/lib and found that 
> while
> it contained a tclConfig.sh, there was no tkConfig.sh. A search of the
> file system revealed a tkConfig.sh in 
> /Library/Framewords/Tk.framework, so
> I copied it there.
>
> While I suspect this was a Good Thing To Do, it still hasn't solved
> the problem of matplotlib's setup.py not being able to find the tcl/tk
> headers. Here's my attempt at building and the resultant message:
>
> ken% python setup.py build
> GTKAgg requires pygtk
> cannot find tcl/tk headers. giving up.
>
> The message about "GTKAgg" is expected and should be ignored. 
> Attempting
> a "python setup.py -v build" gave exactly the same error messages. 
> Unfortunately
> the error message about the header, while to the point, isn't terribly 
> helpful :-)
>
> matplotlib is packaged using distutil, and presumably distutil isn't 
> getting
> the info it needs to figure out where the headers are. I've started 
> reading
> about distutil, but am a novice at it (and it's a fairly involved 
> package, as
> well), so if others could offer suggestions as to how to track 
> down/fix this
> problem, it would be a real help.
>
> Cheers,
> Ken
>
>>> I'm attempting to compile matplotlib, and get messages saying that
>>> it can't find the headers for Tcl/Tk. They exist, they just happen to
>>> be in the Frameworks directories for Tcl and for Tk. I know I can
>>> get this to work by hacking (setting up path variables, putting 
>>> symbolic
>>> links in directories, or some such), but aside from the fact that 
>>> that's
>>> a pain and ugly, it doesn't solve the more general problem; if header
>>> files are supposed to be in Frameworks directories (for example, I
>>> found my Tk header files in 
>>> /Library/Frameworks/Tk.framework/Headers),
>>> what is the best way to set up OS X so that they will be available 
>>> to link
>>> against? Note that I don't know that these headers are supposed to be
>>> there; they just are, and for the time being, I'm assuming that the
>>> person who put together Tk.Framework knew what they were doing.
>>
>> Short answer:  Whatever you're trying to build is DOING IT WRONG by 
>> not using tclConfig.sh (they should allow the user to choose which 
>> one, but should default to /usr/lib/tclConfig.sh I guess).  This is 
>> equivalent to not using distutils.  It probably won't be a problem in 
>> the Mac OS X future however, because...
>>
>> Apple's latest strategy for unixy stuff (at least for Python) seems 
>> to be a hybrid approach that should please almost anyone:
>> 	(1) the actual dylib lives in /usr/lib and has a mach-o id pointing 
>> to /usr/lib
>> 	(2) the framework has symlinks to /usr/lib for its dylib
>> 	(3) the headers live in the framework
>> 	(4) /usr/include has appropriate symlinks into the framework
>>
>> [I can say this without breaking NDA because Apple has publicly 
>> released their sources for Python in Darwin 8.0.0b1]
>
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2357 bytes
Desc: not available
Url : http://mail.python.org/pipermail/pythonmac-sig/attachments/20040714/650f3c81/smime.bin


More information about the Pythonmac-SIG mailing list