[Python-Dev] vendor-packages directory

Bob Ippolito bob at redivi.com
Thu Sep 22 22:03:22 CEST 2005


On Sep 22, 2005, at 3:56 PM, Phillip J. Eby wrote:

> At 12:04 PM 9/22/2005 -0700, Rich Burridge wrote:
>
>> Phillip J. Eby wrote:
>>
>>>> Recently I asked about the inclusion of a "vendor-packages"
>>>> directory for Python on the Python mailing list.
>>>>
>>>> See the thread started at:
>>>>
>>>> http://mail.python.org/pipermail/python-list/2005-September/ 
>>>> 300029.html
>>>>
>>>> for the full reasoning behind this request, and the replies
>>>> I received.
>>>>
>>>
>>> I'm with Terry on this, it needs a better rationale.  Why can't  
>>> you just
>>> add a .pth file to the site-packages directory?  It seems that would
>>> address the issue nicely.
>>> (See http://docs.python.org/lib/module-site.html for  
>>> documentation of the
>>> .pth mechanism, which would let you implement a separate vendor- 
>>> packages
>>> directory without modifying Python, and would still allow local  
>>> overrides
>>> of your vendor packages.)
>>>
>>
>> I understand how .pth files work.
>>
>> The rationale for requesting the "vendor-packages" approach, is that
>> Python files,
>> as supplied by the vendor (Sun, Apple, RedHat ...)  with their  
>> operating
>> system
>> software, should go in a totally separate base directory, to  
>> differentiate
>> them
>> from Python files installed specifically at one site.
>>
>
> Right - I'm proposing you add a vendor-packages.pth file to site- 
> pacakges,
> that points to a "totally separate base directory" where those  
> files are
> installed, not that you install the packages themselves under
> site-packages.  To make sure we're disagreeing about the same thing  
> <0.5
> wink>, here's what I'm suggesting:
>
> 1. Install your packages in /usr/lib/python2.4/vendor-packages (so  
> far, so
> good, we agree on this part)
>
> 2. Create a 'vendor-packages.pth' file in /usr/lib/python2.4/site- 
> packages,
> containing the line:
>
>     /usr/lib/python2.4/vendor-packages
>
> This will ensure that your vendor-packages "just work", unless locally
> overridden in site-packages.

vendor-packages.pth should look like this (evil, but practical):

import site; site.addsitedir('/usr/lib/python2.4/vendor-packages')

Otherwise packages like Numeric, PIL, PyObjC, etc. that take  
advantage of pth files will not work when installed to that location.

-bob



More information about the Python-Dev mailing list