[mod_python] importing egg format libs installed on a custom path

Graham Dumpleton graham.dumpleton at gmail.com
Fri Sep 14 05:59:30 EDT 2007


>From command line Python, are you perhaps using 'workingenv' system of
some variety? The activation step required for some of these may not
be compatible with mod_python.

Graham

On 14/09/2007, Graham Carlyle <graham.carlyle at maplecroft.net> wrote:
> Ah, I'm now not sure what was happening before as this morning what I
> described isn't working. So sorry for the muddle.
>
> However after checking what was on sys.path from a modpython handler &
> also from the shell with the correct PYTHONPATH. The difference was the
> egg...
>
> from modpython handler:
> Path is ['/opt/apps/simple',
> '/opt/python/python-2.5.1/lib/python25.zip',
> '/opt/python/python-2.5.1/lib/python2.5',
> '/opt/python/python-2.5.1/lib/python2.5/plat-linux2',
> '/opt/python/python-2.5.1/lib/python2.5/lib-tk',
> '/opt/python/python-2.5.1/lib/python2.5/lib-dynload',
> '/opt/python/python-2.5.1/lib/python2.5/site-packages']
>
> from python shell:
> >>> import sys
> >>> sys.path
> ['', '/opt/apps/simple/feedparser-4.1-py2.5.egg', '/opt/apps/simple',
> '/opt/python/python-2.5.1/lib/python25.zip',
> '/opt/python/python-2.5.1/lib/python2.5',
> '/opt/python/python-2.5.1/lib/python2.5/plat-linux2',
> '/opt/python/python-2.5.1/lib/python2.5/lib-tk',
> '/opt/python/python-2.5.1/lib/python2.5/lib-dynload',
> '/opt/python/python-2.5.1/lib/python2.5/site-packages']
>
> So I added the egg path explicitly to the apache PythonPath directive
> and now the modpython handler happily finds the module.
>
> So my modpython config is now...
>
> <Location "/simple">
>     PythonPath "['/opt/apps/simple/feedparser-4.1-py2.5.egg',
> '/opt/apps/simple'] + sys.path"
>     SetHandler python-program
>     PythonHandler handler
>     PythonDebug On
>     PythonInterpreter simple
> </Location>
>
> So I guess my question is now... do egg based modules need to be
> unzipped & explicitly mentioned on the python path? If so this seems to
> bypass all the pth stuff that egg versioning works off.
>
> thanks,
> Graham
>
> On Fri, 2007-09-14 at 08:28 +1000, Graham Dumpleton wrote:
> > Have you confirmed that in your application sys.path includes the
> > directory you expect to be there?
> >
> > What is the remainder of your Apache configuration for setting up
> > mod_python handler? Ie., what context are you setting PythonHandler
> > etc.
> >
> > Grahamd
> >
> > On 13/09/2007, Graham Carlyle <graham.carlyle at maplecroft.net> wrote:
> > > Hi
> > >
> > > I'm trying to setup an application via mod_python and want to place some
> > > required libraries, that are python eggs, on an application specific
> > > path.
> > >
> > > So I use...
> > >
> > > <LocationMatch ...>
> > >
> > > ...
> > > PythonPath "['/opt/apps/foo/lib/'] + sys.path"
> > > PythonInterpreter foo
> > > ...
> > >
> > > </LocationMatch>
> > >
> > > But the application doesn't pick up on the eggs that were installed in
> > > "/opt/apps/foo/lib/". Although the python shell can import the libs
> > > after setting PYTHONPATH to this path.
> > >
> > > However I can get the webapp to find the eggs if I add to the apache
> > > conf...
> > >
> > > PythonImport /opt/apps/foo/lib/site.py foo
> > >
> > > site.py being a file the easy_install created when i installed the eggs
> > > to the custom path.
> > >
> > > Is this the recommended way of installing eggs to a custom path? Are
> > > there problems with this "solution".
> > >
> > > I had a trawl and couldn't find any info on this sort of problem in the
> > > mailing list which surprised me.
> > >
> > > thanks,
> > > Graham
> > >
> > >
> > > _______________________________________________
> > > Mod_python mailing list
> > > Mod_python at modpython.org
> > > http://mailman.modpython.org/mailman/listinfo/mod_python
> > >
>
>


More information about the Mod_python mailing list