[Python-Dev] versioned .so files for Python 3.2

James Y Knight foom at fuhm.net
Fri Jun 25 02:23:51 CEST 2010


On Jun 24, 2010, at 5:53 PM, Scott Dial wrote:

> On 6/24/2010 5:09 PM, Barry Warsaw wrote:
>>> What use case does this address?
>>
>> Specifically, it's the use case where we (Debian/Ubuntu) plan on  
>> installing
>> all Python 3.x packages into /usr/lib/python3/dist-packages.  As of  
>> PEP 3147,
>> we can do that without collisions on the pyc files, but would still  
>> have to
>> symlink for extension module .so files, because they are always  
>> named foo.so
>> and Python 3.2's foo.so won't (modulo PEP 384) be compatible with  
>> Python 3.3's
>> foo.so.
>
> If the package has .so files that aren't compatible with other version
> of python, then what is the motivation for placing that in a shared
> location (since it can't actually be shared)

Because python looks for .so files in the same place it looks for  
the .py files of the same package. E.g., given a module like lxml, it  
contains the following files (among others):
lxml/
lxml/__init__.py
lxml/__init__.pyc
lxml/builder.py
lxml/builder.pyc
lxml/etree.so

And you can only put it in one place. Really, python should store  
the .py files in /usr/share/python/, the .so files in /usr/lib/x86_64- 
linux-gnu/python2.5-debug/, and the .pyc files in /var/lib/python2.5- 
debug. But python doesn't work like that.

James


More information about the Python-Dev mailing list