[Pythonmac-SIG] py2app, eggs and entry points

Nathan R. Yergler nathan at yergler.net
Sat Mar 31 16:22:05 CEST 2007


On 3/31/07, Ronald Oussoren <ronaldoussoren at mac.com> wrote:
>
> On 29 Mar, 2007, at 14:47, Nathan R. Yergler wrote:
>
> > I have an application that I'd like to package using py2app, but I'm
> > getting a little stuck with things.  I *think* my problem is that my
> > setup.py is fully setuptools-ized and my application script lives
> > inside my package.  Here's the call I make to setup():
> >
> > setup(name='cclookup',
> >       version='2.0',
> >       url='http://wiki.creativecommons.org/CcLookup',
> >       author='Nathan R. Yergler',
> >       author_email='nathan at creativecommons.org',
> >
> >       packages = ['cclookup', 'tagger', 'eyeD3'],
> >
> >       setup_requires = setup_requirements,
> >       install_requires = ['setuptools',
> >                           'rdflib==2.3.3',
> >                           'ccrdf>=0.6a4',
> >                           'cctagutils>=0.5a1',
> >                           'rdfadict',
> >                          ],
> >       include_package_data = True,
> >       zip_safe = False,
> >
> >       entry_points = {
> >         'console_scripts':['cclookup = cclookup:main'],
> >       },
> >       app=['cclookup/app.py'],
> >       options={ "py2exe": {"packages": ["encodings", 'rdflib']},
> >                 "py2app": {"argv_emulation": True,
> >                            "iconfile": os.path.join('cclookup',
> > 'resources', 'cc.icns')
> >                            }
> >                 },
> >       )
> >
> > When I try to run this with py2app, it crashes into pdb complaining
> > that it can't locate pkg_resources.  Running the super-simplified
> > version of setup.py generated by py2applet builds correctly, but has
> > the following problems:
> >
> > * dependencies aren't included (I'm not sure if py2app actually
> > attempts to scan for them like py2exe or not, so this may not be
> > py2app's fault in the least)
>
> Py2app scans for import statements, but cannot look inside zipfiles
> at the moment.
>
> > * app.py is included by itself, as opposed to as part of the package.
>
> That's by design. Teaching py2app to do the same as setuptools does
> for console_script entrypoints shouldn't be too hard, but nobody has
> gotten around to doing this yet.
>
> >
> > I think that ideally I'd be able to specify my application as a
> > gui_scripts entry point to setup(), and have it play nicely with the
> > eggs specified in install_requires.  I saw the docs mentioned that a
> > future version would use eggs (I think it was in reference to
> > recipes), and I was wondering what the status of that effort is.
>
> AFAIK nobody is working on that. You're problems are caused by lack
> of 'egg' support in py2app, the current version of py2app doesn't
> look at entry points or other setuptools specific data other than the
> requires lines.
>
> I have a patch that teaches py2app to look inside zipfiles, I'll
> merge that when I have some time to do so. Full setuptools support
> should be possible as well, I haven't looked seriously at this yet
> though. Patches would be greatly appriciated :-)

I think the zipfile support would be useful -- I was doing some more
looking at it appears that the problem was occuring with modulegraph,
when it tried to import pkg_resources (and couldn't find it since it
was inside a zipped egg).  I'll take a look and see what I can come up
with with respect to setuptools support...


>
> Ronald
>
>


More information about the Pythonmac-SIG mailing list