Graham Dumpleton
graham.dumpleton at gmail.com
Fri Apr 11 04:51:17 EDT 2008
2008/4/11 Evert Rol <evert.rol at gmail.com>: > > > > > > > I'm having a hard time telling Apache (or mod_python) to tell which > python > > > executable to use. > > > The thing is, I don't have a root access, so I'm running the Apache > server > > > and python 2.5 under my user account. Both have also been installed this > > > way, ie, they are in my in the directory tree of my user account. > > > To avoid interference with the older system python (2.3), I just call > > > python with the full path (I try to avoid changing my path, since some > of > > > these scripts run as cron jobs, bypassing a lot of setup files). > > > Bit of debugging (eg, print sys.executable in a mod_python script) > showed, > > > however, that mod_python is still happily using the system python, not > my > > > locally installed. That goes fine up to a certain point, but it does of > > > course crash in the end. I had compiled mod_python with the > --with-python > > > and --with-apxs options, but looks like that doesn't help here. > > > After some further searching around, I came across the Action directive > for > > > Apache; still didn't work, although that may be simply because I did > that > > > incorrectly. > > > > > > For the record, I'm using mod_python for Django, maing things > potentially > > > more convoluted. > > > Here's what my latest attempt at getting this to work (still failing > after > > > plenty of Apache restarts): > > > > > > Action thepython-program /home/evert/sw/bin/python2.5 > > > # Django directory > > > <Location "/testing/"> > > > SetHandler thepython-program > > > PythonHandler django.core.handlers.modpython > > > SetEnv DJANGO_SETTINGS_MODULE mysite.settings > > > PythonDebug On > > > </Location> > > > > > > > > > I'm beginning to run out of ideas (& Google search terms). Does anyone > have > > > any pointers? > > > > > > > The mod_python module embeds the Python interpreter and so it can only > > use the version you compiled it against, Your attempts therefore to > > use Action are fruitless in that respect, but also because that isn't > > what the Action directive is for. > > > > Please clarify which version of mod_python you are using and which > > version of Python it was actually compiled against. If using > > mod_python 3.3.1 you should see warning/error messages in Apache error > > log on startup when the version of Python that it was compiled against > > was in a non standard location on path of Apache user and thus > > couldn't be found. This though would generally result in complete > > failure, yet you suggest it works for a bit and fails which suggests > > that mod_python isn't compiled against version of Python you want and > > it is your Python code which is incompatible with the version of > > Python that mod_python was compiled for. > > > > It is 3.3.1, with Python 2.5; the system python at /usr/bin/python is 2.3. > I cannot recall having seen any warning messages in the logs on finding the > incorrect Python version. And I have absolutely no idea why parts of it > seemed to work, and then it decided to crash. Looks like that had to do with > sqlite from within Python, so it could be running into sqlite library > incompatibilities (I don't know if 2.5 & 2.3 handle those differently; does > 2.3 using the system library, while 2.5 has it built-in and therefore uses a > different version?). > I did manage to solve it with setting the PATH, which, as said, isn't my > preferred option. > > > > > https://issues.apache.org/jira/browse/MODPYTHON-225 > > > > Yep, that pretty much sums it up. Both the problem I'm having and the > solution I wanted to achieve (set Apache directive to pick up the correct > Python, instead of setting PATH). Looks like I just hadn't put the right > search terms into Google. > I guess I have to make do with it for now. Or if you only need it for hosting a WSGI application like Django, use mod_wsgi instead. When using mod_wsgi you can override Python install prefix for this sort of problem in Apache configuration. See section 'Multiple Python Versions' in: http://code.google.com/p/modwsgi/wiki/InstallationIssues Graham
|