Graham,

thanks a lot for devoting your time and energy to help me (even more
thanks for mod_wsgi overall!:).


Setting correct WSGIPythonExecutable or WSGIPythonHome didn't help.

ldd mod_wsgi.so output is
linux-gate.so.1 =>  (0x00381000)
        libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00add000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00a80000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00110000)
        libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0x00114000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x001f0000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00386000)
        libz.so.1 => /lib/libz.so.1 (0x00118000)
        /lib/ld-linux.so.2 (0x00581000)

so i've started playing around with setting the PATH and
LD_LIBRARY_PATH env variables.

But as i need to travel a bit tomorow, I'll finish the testing and
post the results of the PATH and LD_LIBRARY_PATH "method'
in two days, hope that's fine.

thanks again,
greetings,
to

p.s. this is the bin/python (as said, just a wrapper script), maybe
it's important as well...:
#!/usr/bin/python

import sys

try:
    if sys.argv[1] == '-u':
        sys.argv.remove('-u')
except:
    pass

sys.path[0:0] = [
  '/home/toinbis/Desktop/programming/project/src',
  '/home/toinbis/Desktop/programming/project/eggs/Django-1.1.1-
py2.6.egg',
  '/home/toinbis/Desktop/programming/project/eggs/MySQL_python-1.2.3c1-
py2.6-linux-i686.egg',
  '/home/toinbis/Desktop/programming/project/eggs/setuptools-0.6c11-
py2.6.egg',
  '/home/toinbis/Desktop/programming/project/parts/djangosphinxgit',
  '/home/toinbis/Desktop/programming/project/parts/sqlalchemyhg/lib',
  '/home/toinbis/Desktop/programming/project/parts/svnapps/
sphinxsearchtrunk/api',
  '/home/toinbis/Desktop/programming/project/src/tsd',
  ]

_interactive = True
if len(sys.argv) > 1:
    _options, _args = __import__("getopt").getopt(sys.argv[1:],
'ic:m:')
    _interactive = False
    for (_opt, _val) in _options:
        if _opt == '-i':
            _interactive = True
        elif _opt == '-c':
            exec _val
        elif _opt == '-m':
            sys.argv[1:] = _args
            _args = []
            __import__("runpy").run_module(
                 _val, {}, "__main__", alter_sys=True)

    if _args:
        sys.argv[:] = _args
        __file__ = _args[0]
        del _options, _args
        execfile(__file__)

if _interactive:
    del _interactive
    __import__("code").interact(banner="", local=globals())



On Jan 21, 1:31 pm, Graham Dumpleton <[email protected]>
wrote:
> Presuming that:
>
>   /home/toinbis/Desktop/programming/project/bin/python
>
> is the Python you wanted used, what do you get when you run that and do:
>
>   import sys
>   print sys.prefix
>
> Whatever the value of sys.prefix is for the Python you want used, add it as:
>
>   WSGIPythonHome <value of sys.prefix>
>
> Replacing <value of sys.prefix> as appropriate.
>
> Do not set WSGIPythonExecutable in this case.
>
> Alternatively, set:
>
>   WSGIPythonExecutable /home/toinbis/Desktop/programming/project/bin/python
>
> Do not set WSGIPythonHome in this case.
>
> If that doesn't help, then also post the output of running:
>
>   ldd mod_wsgi.so
>
> If that doesn't reference a libpython2.6.so from the buildout Python
> installation, you are going to have to do some trickery.
>
> The easiest way is to locate the directory where the correct
> libpython2.6.so will be installed into and then find the 'envars' file
> in the same directory as the 'httpd' binary for your buildout
> installation. Modify that file to include:
>
>   PATH=<directory containing the correct python executable>:$PATH
>   export PATH
>
>   LD_LIBRARY_PATH=<directory containing the libpython2.6.so>:$LD_LIBRARY_PATH
>   export LD_LIBRARY_PATH
>
> In short though, the basic problem is that you have multiple Python
> 2.6 installations on the same system and the way Python works it will
> use as base reference for Python installation the 'python' executable
> it finds in the PATH use environment variable. For Apache we therefore
> need to override in the envvars file what PATH is and therefore what
> Python it finds else it may use system wide installed Python as base.
> The LD_LIBRARY_PATH is similarly needed where libpython2.6.so is not
> in a standard library directory.
>
> Setting PATH like this avoids need to use either WSGIPythonHome or
> WSGIPythonExecutable and so you should not set either of those
> directives for this case.
>
> Indicate how that goes and can suggest some other things.
>
> Graham
>
> 2010/1/21 toinbis <[email protected]>:
>
> > Hi everyone!
>
> > Even though i compile mod_wsgi with "--with-python=/path/to/custom/
> > python/executable", the system python executable is being used to run
> > the wsgi app, not the custom one. Is there any setting i'm
> > misconfiguring in httpd.conf or anywhere else?
>
> > If the the Django framework (python-django Ubuntu package) is not
> > installed in the system python, the url, triggering the django wsgi
> > app, ends up with Apache's internal error and `"ImportError: No module
> > named django.core.handlers.wsgi"` message in apache's error logs. If
> > django is installed in the system path, it ends up with django pretty
> > error page:
>
> >    ImportError at /
>
> >    No module named djangosphinx.models
>
> >    Request Method:     GET
> >    Request URL:        http://127.0.0.1:8001/djangoapp/
> >    Exception Type:     ImportError
> >    Exception Value:
>
> >    No module named djangosphinx.models
>
> >    Exception Location:         
> > /home/toinbis/Desktop/programming/project/src/
> > tsd/core/models.py in <module>, line 3
> >    Python Executable:  /usr/bin/python
>
> > So clearly the problem is with using wrong python executable to run
> > the wsgi app (djangosphinx is a module which is successfully imported
> > with the zc.buildout custom generated python executable).
>
> > More background details:
>
> > Am deploying custom nginx + apache(mod_wsgi)  + supervisor + mysql +
> > python + django + php + phpmyadmin + wordpress setup using zc.buildout
> > (http://buildout.org). Buildout.cfg details:
>
> >    [apache]
> >    recipe = hexagonit.recipe.cmmi
> >    url =http://www.apache.lt/httpd/httpd-2.2.14.tar.gz
> >    keep-compile-dir = true
> >    configure-options = --enable-so
>
> >    [mod_wsgi]
> >    recipe = hexagonit.recipe.cmmi
> >    url =http://modwsgi.googlecode.com/files/mod_wsgi-3.1.tar.gz
> >    keep-compile-dir = true
> >    configure-options = --with-python=${directories:buildout_root}/bin/
> > python --with-apxs=${directories:buildout_root}/parts/apache/bin/apxs
>
> > The vhosts.conf file:
>
> >    <snip>
> >    #=============================
> >    #Django_wsgi_app
> >    #=============================
> >    <VirtualHost *:8001>
>
> >        <Directory /home/toinbis/Desktop/programming/project/runtime/
> > htdocs/django_wsgi/>
> >            Order deny,allow
> >            Allow from all
> >        </Directory>
>
> >        WSGIDaemonProcess tsd user=www-data group=www-data threads=25
> >        WSGIProcessGroup tsd
>
> >        WSGIScriptAlias /djangoapp /home/toinbis/Desktop/programming/
> > project/runtime/htdocs/django_wsgi/djproject.wsgi
>
> >        LogLevel warn
> >        ErrorLog  /home/toinbis/Desktop/programming/project/runtime/
> > logs/apache_tsd_error.log
> >        CustomLog /home/toinbis/Desktop/programming/project/runtime/
> > logs/apache_tsd_access.log combined
>
> >    </VirtualHost>
>
> >    </snip>
>
> > Tried adding different combinations of such lines in between
> > <Virtualhost> </Virtualhost>:
>
> > WSGIPythonExecutable /home/toinbis/Desktop/programming/project/bin/
> > python
> > WSGIPythonHome /usr/bin
> > #omelette dir has a symlink to all python modules installed with
> > zc.buildout
> > WSGIPythonPath /home/toinbis/Desktop/programming/project/parts/
> > omelette
>
> > But usually that just caused apache to fail during the start,
> > generating error(s):
>
> > [Thu Jan 21 10:05:37 2010] [debug] mod_wsgi.c(9921): mod_wsgi
> > (pid=2299): Socket for 'tsd' is '/home/toinbis/Desktop/programming/
> > project/parts/apache/logs/wsgi.2299.0.1.sock'.
> > [Thu Jan 21 10:05:37 2010] [info] mod_wsgi (pid=2433): Starting
> > process 'tsd' with threads=25.
> > [Thu Jan 21 10:05:37 2010] [info] mod_wsgi (pid=2433): Initializing
> > Python.
> > <...> - similar lines :)
> > [Thu Jan 21 10:05:37 2010] [info] mod_wsgi (pid=2438): Initializing
> > Python.
> > [Thu Jan 21 10:05:37 2010] [notice] Apache/2.2.14 (Unix) PHP/5.3.1
> > mod_wsgi/3.1 Python/2.6.4 configured -- resuming normal operations
> > [Thu Jan 21 10:05:37 2010] [info] Server built: Jan 17 2010 01:54:57
> > [Thu Jan 21 10:05:37 2010] [debug] prefork.c(1013): AcceptMutex:
> > sysvsem (default: sysvsem)
> > [Thu Jan 21 10:05:37 2010] [info] mod_wsgi (pid=2435): Attach
> > interpreter ''.
> > [Thu Jan 21 10:05:37 2010] [info] mod_wsgi (pid=2434): Attach
> > interpreter ''.
> > [Thu Jan 21 10:05:38 2010] [info] mod_wsgi (pid=2436): Attach
> > interpreter ''.
> > <...> - similar lines :)
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2436): Cleanup
> > interpreter ''.
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2434): Destroying
> > interpreters.
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2434): Cleanup
> > interpreter ''.
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2436): Terminating
> > Python.
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2434): Terminating
> > Python.
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2436): Python has
> > shutdown.
> > [Thu Jan 21 10:11:09 2010] [info] mod_wsgi (pid=2434): Python has
> > shutdown.
> > [Thu Jan 21 10:11:09 2010] [info] removed PID file /home/toinbis/
> > Desktop/programming/project/parts/apache/logs/httpd.pid (pid=2299)
> > [Thu Jan 21 10:11:09 2010] [notice] caught SIGTERM, shutting down
> > [Thu Jan 21 10:24:33 2010] [debug] mod_wsgi.c(9921): mod_wsgi
> > (pid=3926): Socket for 'tsd' is '/home/toinbis/Desktop/programming/
> > project/parts/apache/logs/wsgi.3926.0.1.sock'.
> > [Thu Jan 21 10:24:33 2010] [info] mod_wsgi (pid=3928): Starting
> > process 'tsd' with threads=25.
>
> > djproject.wsgi (tried removing #!/home/.../python from the begining of
> > the file, no help):
>
> >    #!/home/toinbis/Desktop/programming/project/bin/python
> >    import os, sys
>
> >    apache_configuration= os.path.dirname(__file__)
> >    sys.path.append(apache_configuration)
> >    #django project
> >    sys.path.append('/home/toinbis/Desktop/programming/project/src/
> > tsd')
> >    #django source
> >    sys.path.append('/home/toinbis/Desktop/programming/project/parts/
> > djangoapp/')
>
> >    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
> >    import django.core.handlers.wsgi
> >    application = django.core.handlers.wsgi.WSGIHandler()
>
> > Possibly-relevant settings in httpd.conf (these are the only two
> > modules being loaded. Rest of the settings doesn't seem relevant to
> > the given problem):
>
> >    LoadModule php5_module        modules/libphp5.so
> >    LoadModule wsgi_module        modules/mod_wsgi.so
>
> > Thanks in advance for any ideas and suggestions how to make the custom
> > python executable (which, itsefl, is just a wrapper script for system
> > python, with several added python path dirs) run the mod_wsgi app!
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "modwsgi" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/modwsgi?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to