Thanks for your help Jonathan. I was able to get it working. I had to 
recompile the  python in my virtualenv too, with --enable-shared.
For reference, the related discussion in 
modwsgi: https://groups.google.com/d/topic/modwsgi/gQPT3iEwvU8/discussion

On Wednesday, August 1, 2012 7:31:21 PM UTC+2, Daniel Gonzalez wrote:
>
> Thanks Jonathan,
>
> I will try this later today.
>
> Regards,
> Daniel
>
> On Wednesday, August 1, 2012 6:44:24 PM UTC+2, Jonathan Lundell wrote:
>>
>> On 1 Aug 2012, at 9:30 AM, Daniel Gonzalez <[email protected]> wrote: 
>> > On Wednesday, August 1, 2012 5:56:37 PM UTC+2, Jonathan Lundell wrote: 
>> > On 1 Aug 2012, at 8:52 AM, Daniel Gonzalez <[email protected]> wrote: 
>> >> Quoting from the link you posted: 
>> >> 
>> >> "The purpose of such Python virtual environments is to allow one to 
>> create multiple distinct Python environments for the same version of 
>> Python, but with different sets of Python modules and packages installed 
>> into the Python 'site-packages' directory." 
>> > 
>> > It (virtualenv) also supports different Python versions. Note later in 
>> the text where they talk about making sure that your mod_wsgi is built with 
>> the Python version you're using in the virtualenv. 
>> > 
>> > I am not building mod_wsgi: I am installing it with apt-get install. I 
>> do not know which is the version it was compiled for, since it comes 
>> pre-packaged with the apache ubuntu distribution. I assume it is the 
>> system-wide python version (2.6.5). 
>> > 
>> > But I need to use the python version in my virtualenv for my web2py 
>> application (2.7.2). Running *any* python script with *any* python 
>> interpreter is usually as easy as making sure that the right python 
>> interpreter is selected, by setting the PATH, and putting "#!/usr/bin/env 
>> python" on top of the python script. Why is mod_python different in this 
>> regard? Isn't it basically a wrapper to call the python interpreter? 
>>
>> I'm guessing because it's got some C components, and needs to be compiled 
>> against the same headers and libraries as the Python binary. 
>>
>> > Do you think there is any chance at all of using the python version in 
>> my virtualenv without having to recompile mod_wsgi? 
>> > 
>> > I am afraid that if I start recompiling mod_wsgi this will prove very 
>> complicated, and it will even force me to recompile apache ... 
>> > Besides, what happens if tomorrow I need to upgrade my python version? 
>> Then I need to recompile mod_wsgi too. Looks complicated :( 
>>
>> I don't see why you'd need to recompile Apache, but yeah, it's a little 
>> complicated. Here's a discussion: 
>> http://code.google.com/p/modwsgi/wiki/InstallationIssues 
>>
>> Notice that you don't necessarily have to recompile mod_wsgi for a Python 
>> patch-level upgrade (third digit). 
>>
>> FWIW, I've done this both ways. Under Ubuntu, I built both Python and 
>> mod_wsgi to get 2.7.3. When I moved to RHEL, I decided that I could live 
>> with Python 2.6, and didn't bother with Python (though I did have to 
>> rebuild mod_wsgi for other reasons). 
>>
>> If you *do* build, I suggest using a tool like Fabric to encapsulate the 
>> process, so you can repeat it as required. Among other things, that makes 
>> building new servers or moving to later versions a lot easier. Here's my 
>> current fab script (note that it's oriented toward RHEL, but the Ubuntu 
>> details should be similar). The commented-out --with-python option lets you 
>> specify a non-system Python for the build. 
>>
>> @roles('web') 
>> def install_wsgi(): 
>>     if env.os == 'rhel': 
>>         e = dict(wsgi_version = '3.3') 
>>         with cd('/tmp'): 
>>             run('wget -nv 
>> http://modwsgi.googlecode.com/files/mod_wsgi-{wsgi_version}.tar.gz'.format(**e))
>>  
>>
>>             run('tar xvfz mod_wsgi-{wsgi_version}.tar.gz'.format(**e)) 
>>         with cd('/tmp/mod_wsgi-{wsgi_version}'.format(**e)): 
>>             #./configure --with-python=/usr/local/bin/python 
>>             run('./configure') 
>>             run('make') 
>>             sudo('make install') 
>>             sudo('echo "LoadModule wsgi_module modules/mod_wsgi.so" > 
>> {apachedir}/conf.d/wsgi.conf'.format(**env)) 
>>
>>

-- 



Reply via email to