Question about python 3.2 distutils

Collin Day dcday137 at gmail.com
Sat Mar 17 07:05:29 CET 2012


Hi all,

I have a question about python 3.2 distutils on a Gentoo amd64 system.  
When I open an ipython session and import distutils.unixcompiler and 
then check the shared library extension with 
UnixCCompiler.shared)lib_extension, it returns '.so', as I would 
expect.  When I run a setup.py in an unofficial PIL source that should 
work with python 3.2 and step into it, I hit the line:

find_library_file(self, "tcl" + version):
     feature.tcl = "tcl"+TCL_VERSION

self is: <__main__.pil_build_ext object at 0xf44510>

find_library_file is:

def find_library_file(self, library):
     return self.compiler.find_library_file(self.compiler.library_dirs, 
library)

     self.compiler is <distutils.unixccompiler.UnixCCompiler object at 
0xfc5410>
     library is:  'tcl8.5'

when I check the shared_lib_extension it returns '.cpython-32.so' - not 
'.so'

This is causing a problem because, for example, I have libtcl8.5.so, but 
it is looking for libtcl8.5.cpython-32.so.

Where is this shared lib extension being determined?  After all, in an 
interactive session, it is just looking for .so, but in the script, it 
is looking for .cpython-32.so.  I tried grep -R cpython-32 * in the top 
level directory of ther PIL source I am using, thinking it may be 
ovridden or set somewhere, but it turns up empty.  Can anyone tell me 
what the difference is?  I posted earlier, but I just noticed this 
difference between interactive session and script.

Thanks!





More information about the Python-list mailing list