There is also another way of integrating with apache:
http://www.rkblog.rk.edu.pl/w/p/mod_wsgi/
Wichert.
Previously Graham Dumpleton wrote:
On Apr 28, 6:40 am, Cliff Wells [EMAIL PROTECTED] wrote:
On Fri, 2007-04-27 at 07:36 -0600, Orr, Steve wrote:
What are the advantages/disadvantages pros/cons to doing a proxy instead
of just usingmod_python?
Typically, proxying is:
1. easier to setup thanmod_python
2. easier to upgrade Python (nomod_python/python version issues)
Can you elaborate further on what the specific mod_python/python
versions issues are? Note that I ask this to learn what the problems
supposedly are and why it may be any more problematic than having to
recompile any third party C extension modules for Python which you may
have also installed into the Python site packages directory. Such
feedback would be useful because although people grumble about this
and use it as a reason against using mod_python, those same people
never actually come over to the mod_python mailing list to describe
the problems so that mod_python may if required be improved or so they
may be corrected in their understanding as to how things work.
FWIW, here are the specific issues that are already known about in
respect of Python version issues when using mod_python. Do your
specific problems match one of these or are they something else?
First issue is not actually mod_python's fault and arises from fact
that most binary Python distributions are not configured with --enable-
shared. This means that no shared library is generated for Python,
only a static library. The consequence of this is that the static
objects have to be embedded within the mod_python.so Apache module. If
one later upgrades Python to a newer patch revision of the same major/
minor version but don't correspondingly recompile mod_python or obtain
correct new binary version of it, you run the risk of problems because
the core Python code you would be running would be older and not match
the Python code files and Python C extension modules in the Python
installation. Newer versions of mod_python will log warnings in the
Apache error log when this problem occurs.
The second issue is not completely mod_python's fault but arises from
how Python works out where the installed Python code files and
extension modules are installed. That is, how it works out what to set
sys.prefix and sys.exec_prefix to. The way Python when being
initialised does this is to find which 'python' executable is in its
PATH and then from that try and work out where the library directory
is. Problem with this is if you have multiple Python installations of
the same major/minor version number but different patch revision
installed in totally different locations, eg., /usr/bin and /usr/local/
bin, it can find the wrong version as the Python version you want may
not be that in the PATH for the user Apache is started as.
With mod_python only way around this is to set PATH, PATHEXECUTABLE or
PATHHOME environment variables in the environment of the user that
Apache is started as. What should be done is for new directives to be
added to mod_python called PythonExecutable and PythonHome which
achieve the same thing so it can be done in Apache configuration
instead. This would make it easier to resolve for those small
percentage of people who have multiple Python installations on their
system.
Upgrading to a completely new major/minor version of Python without
also using a recompiled version of mod_python will obviously also
create lots of problems as it will continue to use an older version of
Python, or may not even be able to find the installed mod_python
Python code files anymore if old installation of Python was removed.
The only other problem area is transitioning to a newer version of
Python using the same system. That is, where you might want to be able
to run applications using different versions of Python. To do this
would mean running two distinct instances of Apache on the same box
but with different installations of mod_python/Python. Preferably if
doing this one should just perhaps use two different hosts.
So except for the two quite specific issues noted above, are your
problems perhaps really just an issue of dependency management,
something that is going to occur for any software components and not
just mod_python itself?
Any feedback would be most appreciated so the real problems can be
understood. Unfortunately when I have tried to dig into such claims in
the past, there is usually dead silence, so can never find out what
the real problems are so they can be addressed in mod_python if need
be. :-(
Graham
3. doesn't require restarting Apache as often
4. just as fast
5. frees you from having to use Apache at all (other proxy solutions are
available that are usually faster and lighter than Apache)
Regards,
Cliff
--
Wichert Akkerman [EMAIL