I switched my python version from 2.7 to 2.6 on my development system and then re-deployed a fresh virtual environment on the server and it worked straight away without changing any configuration!
Thanks for your help. On Nov 3, 10:33 am, Graham Dumpleton <[email protected]> wrote: > You can not mix versions. You will need to use a Python 2.6 generated > virtual environment. You can't use a 2.7 version virtual environment > with mod_wsgi compiled against 2.6. > > Graham > > On 3 November 2011 17:27, Bastien Rocheron <[email protected]> wrote: > > > > > > > > > So, > > > in Python interpreter against virtual environment: > > sys.version: '2.6.6 (r266:84292, Dec 26 2010, 22:31:48) \n[GCC 4.4.5]' > > sys.prefix: '/usr' > > > and under mod_wsgi: > > > sys.version = '2.6.6 (r266:84292, Dec 26 2010, 22:48:11) \n[GCC 4.4.5]' > > sys.prefix = '/usr' > > > lld mod_wsgi.so > > ldd: ./mod_wsgi.so: No such file or directory > > > unset LD_LIBRARY_PATH > > lld mod_wsgi.so > > ldd: ./mod_wsgi.so: No such file or directory > > > ldd /usr/lib/apache2/modules/mod_wsgi.so | grep libpython: > > libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00007fcdd55a5000) > > > Then in Python interpreter against virtual environment: > > >>>> import django > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > ImportError: No module named django > > > Then under mod_wsgi when I add > > import os > > print os.listdir('/some/path') > > > I get ['template', 'core', 'templatetags', 'dispatch', 'db', 'contrib', > > 'conf', 'http', 'bin', '__init__.py', 'utils', 'shortcuts', 'test', 'views', > > 'forms', 'middleware'] which is the content of the django directory in the > > virtual env which path I indicated instead of /some/path. > > > Obviously the problem here seems to be the inability to import django but I > > don't know what I should change. I should add that I created this virtual > > env on a different system (with python 2.7) where import django works > > against the virtual env (django is not installed in the system either) and > > then deployed this virtual env on the Debian. > > > Thanks for your help. > > > On Thu, Nov 3, 2011 at 1:40 AM, Graham Dumpleton > > <[email protected]> wrote: > > >> What do you get in Python interpreter run against virtual environment for: > > >> import sys > >> sys.version > >> sys.prefix > > >> Similarly, under mod_wsgi as described in: > > >> http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python... > > >> What do you get for: > > >> ldd mod_wsgi.so > > >> Ie. which run time libpythonX.Y.so is it finding. > > >> http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python... > > >> In Python interpreter against virtual environment run: > > >> import django > >> django.__file__ > > >> This will be a path to a file, take the directory part of that, ie., > >> drop __init__.py of the end, and in the same prefix/version test > >> script above under mod_wsgi add: > > >> import os > >> print os.listdir('/some/path') > > >> where /some/path is replaced with the directory that Django is installed > >> in. > > >> If that fails, it indicates Apache user doesn't have read access down > >> through all directories to where Django installed in virtual > >> environment. > > >> Graham > > >> On 3 November 2011 08:02, karme <[email protected]> wrote: > >> > Ok I thought I would try again from scratch using specific > >> > instructions but you're right let's start from an actual config and > >> > work our way from there. > > >> > So I will start with what seems to be the closest configuration to > >> > what I actually want to achieve: > > >> > 1. The actual Apache configuration snippets for mod_wsgi you are > >> > using: > > >> > <VirtualHost someserver:80> > >> > ServerName myvirtualhost > > >> > DocumentRoot /path/to/my/project/apache/documents > > >> > <Directory /path/to/my/project/apache/documents> > >> > Order allow,deny > >> > Allow from all > >> > </Directory> > > >> > # I comment this line so the server starts in embedded mode and I > >> > get the errors in Apache error.log > >> > # (I can't see any error in daemon mode) > >> > #WSGIDaemonProcess django processes=2 threads=5 display- > >> > name=myproject user=myuser group=mygroup > >> > WSGIScriptAlias / /path/to/my/project/apache/settings.wsgi > > >> > <Directory /path/to/my/project/apache> > >> > #WSGIProcessGroup django > >> > Order allow,deny > >> > Allow from all > >> > </Directory> > >> > </VirtualHost> > > >> > 2. The contents of your WSGI script file: > > >> > import os > >> > import sys > > >> > root = os.path.join(os.path.dirname(__file__), '..') > >> > sys.path.insert(0, root) > > >> > activate_this = os.path.join(root, 'bin/activate_this.py') > >> > execfile(activate_this, dict(__file__=activate_this)) > > >> > os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' > > >> > import django.core.handlers.wsgi > >> > application = django.core.handlers.wsgi.WSGIHandler() > > >> > 3. Indicate how you created the virtual environment, did you use > >> > --no-site-packages option to virtualenv. > > >> > Yes I used --no-site-packages > > >> > 4. The actual error messages from the Apache error logs you are > >> > getting showing there is a problem. > > >> > With this config, the apache error log gives this output: > > >> > [Wed Nov 02 21:27:14 2011] [info] mod_wsgi (pid=4658): Create > >> > interpreter 'myproject.myhost|'. > >> > [Wed Nov 02 21:27:14 2011] [info] [client IP] mod_wsgi (pid=4658, > >> > process='', application='myproject.myhost|'): Loading WSGI script '/ > >> > path/to/my/project/apache/settings.wsgi'. > >> > [Wed Nov 02 21:27:14 2011] [error] [client IP] mod_wsgi (pid=4658): > >> > Target WSGI script '/path/to/my/project/apache/settings.wsgi' cannot > >> > be loaded as Python module. > >> > [Wed Nov 02 21:27:14 2011] [error] [client IP] mod_wsgi (pid=4658): > >> > Exception occurred processing WSGI script '/path/to/my/project/apache/ > >> > settings.wsgi'. > >> > [Wed Nov 02 21:27:14 2011] [error] [client IP] Traceback (most recent > >> > call last): > >> > [Wed Nov 02 21:27:14 2011] [error] [client IP] File "/path/to/my/ > >> > project/apache/settings.wsgi", line 12, in <module> > >> > [Wed Nov 02 21:27:14 2011] [error] [client IP] import > >> > django.core.handlers.wsgi > >> > [Wed Nov 02 21:27:14 2011] [error] [client IP] ImportError: No module > >> > named django.core.handlers.wsgi > >> > [Wed Nov 02 21:27:14 2011] [debug] mod_deflate.c(615): [client IP] > >> > Zlib: Compressed 538 to 325 : URL / > >> > [Wed Nov 02 21:27:14 2011] [info] mod_wsgi (pid=4663): Initializing > >> > Python. > >> > [Wed Nov 02 21:27:14 2011] [info] mod_wsgi (pid=4663): Attach > >> > interpreter ''. > > >> > Another interesting thing to note is that on my local system I can > >> > source bin/activate and start python and load django but on the Debian > >> > with Apache and mod_wsgi I have just tried the same and cannot load > >> > django. Before trying this method I tried some of the other methods > >> > described in the video "Getting started with Apache/mod_wsgi" at Pycon > >> > Australia and I could successfully load django. I don't know what went > >> > wrong then. > > >> > Any idea? > >> > Thanks > > >> > On Nov 3, 12:27 am, Graham Dumpleton <[email protected]> > >> > wrote: > >> >> Did you disable mod_python from Apache? > > >> >> Also please start by providing the following: > > >> >> 1. The actual Apache configuration snippets for mod_wsgi you are using. > >> >> 2. The contents of your WSGI script file. > >> >> 3. Indicate how you created the virtual environment, did you use > >> >> --no-site-packages option to virtualenv. > >> >> 4. The actual error messages from the Apache error logs you are > >> >> getting showing there is a problem. > > >> >> You can also check you are actually running in daemon mode by > >> >> following: > > >> >>http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Embedd... > > >> >> Anyway, at the moment you are saying it doesn't work but not actually > >> >> saying what is failing. There is going to be no point referring you to > >> >> the same documentation you have likely already read, so lets address > >> >> the specific error or wrong behaviour you are getting instead. > > >> >> Graham > > >> >> On 3 November 2011 06:40, karme <[email protected]> wrote: > > >> >> > Hi, > > >> >> > I have read the docs and watched the videos but yet cannot make it > >> >> > work. > >> >> > I have tried the various options and at times almost got it working. > > >> >> > Now I'd like your help. > > >> >> > - What I have: a standard Debian squeeze with Apache2, python and > >> >> > mod_wsgi installed via apt-get. > >> >> > - What I want: being able to run Django with mod_wsgi in daemon mode > >> >> > using what's inside my project directory only, using virtualenv, I > >> >> > don't even have django installed in the system. > >> >> > - What is working: the daemon mode seems to be working since I set it > >> >> > up to run with my user and I see it like that in top / ps while > >> >> > accessing the virtual host which is running the hello world wsgi > >> >> > program succesfully. > > >> >> > Now I tried to run Django with different method found in the various > >> >> > docs to no avail. I'm trying again from scratch. Could you please > >> >> > tell > >> >> > me what is the preferred way to achieve the aforementioned goal so I > >> >> > can try again? Or may be tell me if my current setup is wrong? Please > >> >> > provide some code or even just some references to the docs. If more > >> >> > info is needed I can provide it. > >> >> > Any help would be much appreciated. Last time I deployed a Django app > >> >> > was with mod_python and I can't remember having such troubles, is it > >> >> > me or mod_wsgi is a bit more complicated to handle? > >> >> > Thanks. > > >> >> > -- > >> >> > 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 > > ... > > read more » -- 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.
