On 30 Jul, 2010, at 18:24, Russell Owen wrote: > Fixing py2app would be great, but perhaps it would suffice to document the > problem and let the user of py2app to fix the bizarre install left by pip.
As pip is a fairly popular tools fixing the the issue in py2app would be
better.
>
> I'll file some kind of "complaint" against pip -- though I would not be at
> all surprised if this was a side effect of setuptools; easy_install has an
> obsession with .pth files.
I'm almost certain this is the "--single-version-externally-managed " option of
setuptools. This is meant to be used with tools that don't want .egg
directories/files and cannot deal with two packages that install the same
files, such as the linux packaging tools.
> I hope all this becomes a lot easier once the package metadata PEPs are
> implemented.
The metadata PEP has explicit support for having two packages that install
exactly the same copy of a file, too bad pip doesn't use it (and that support
for it wasn't added in python 2.7's distutils, IMO Tarek was too conservative
there).
Ronald
>
> -- Russell
>
> On Jul 29, 2010, at 11:06 PM, Ronald Oussoren wrote:
>
>>
>> On 22 Jul, 2010, at 19:06, Russell E. Owen wrote:
>>>>>
>>>>
>>>> How did you install zope.interface? Basically which easy_install or pip
>>>> command-line did you use to install?
>>>
>>> I used "pip install zope.interface".
>>
>>
>> When you use "pip install" to install packages namespace packages get
>> installed in an odd way: the __init__.py file in the namespace package is
>> not installed, and pth file is installed to fakes having a real package, for
>> zope.interface the following
>> tet installed:
>>
>> * zope
>> * zope.interface-3.6.1-py2.7-nspkg.pth
>> * zope.interface-3.6.1-py2.7.egg-info
>>
>> The nspkg.pth file is very ugly:
>>
>> import sys,types,os; p = os.path.join(sys._getframe(1).f_locals['sitedir'],
>> *('zope',)); ie = os.path.exists(os.path.join(p,'__init__.py')); m = not ie
>> and sys.modules.setdefault('zope',types.ModuleType('zope')); mp = (m or [])
>> and m.__dict__.setdefault('__path__',[]); (p not in mp) and mp.append(p)
>>
>> It should be easy enough to teach modulegraph about this and insert and
>> empty __init__.py file insite the zip file in the app bundle.
>>
>> Increasinly-hating-setuptools[*],
>>
>> Ronald
>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Pythonmac-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
