How can I rebuild my mod_wsgi to use python 2.7.3?

江枫思渺然 提交于 2019-12-09 17:17:55

问题


I'm using mod_wsgi to serve up a django website, but I've got an internal server error. Here's the apache log:

[Fri May 31 10:11:25 2013] [error] python_init: Python version mismatch, expected '2.7.2+', found '2.7.3'.
[Fri May 31 10:11:25 2013] [error] python_init: Python executable found '/usr/bin/python'.
[Fri May 31 10:11:25 2013] [error] python_init: Python path being used '/usr/lib/python2.7/:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload'.
[Fri May 31 10:11:25 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri May 31 10:11:25 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri May 31 10:11:25 2013] [notice] Apache/2.2.22 (Ubuntu) DAV/2 mod_fcgid/2.3.6 mod_python/3.3.1 Python/2.7.3 mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 mod_perl/2.0.5 Perl/v5.14.2 configured -- resuming normal operations

So it seems that there's a mismatch between the mod_wsgi version and the runtime version of python. How can I update this?


回答1:


You have to compile mod_wsgi from source and reinstall.

Most likely as simple as:

$ ./configure
$ make
$ sudo make install

The mod_wsgi documentation covers this in detail.




回答2:


I didn't have to compile from source, this helped me:

$ apt-get remove libapache2-mod-python libapache2-mod-wsgi 
$ apt-get build-dep libapache2-mod-python libapache2-mod-wsgi 



回答3:


Remember to check that the files wsgi.load and wsgi.conf are still referenced in the apache2 configuring. For Ubuntu (and probably Debian) that means having a symbolic link from /etc/apache2/mods-available to /etc/apache2/mods-enabled.




回答4:


Had the same problem, solved by suing virtual environments.

For set up: https://www.digitalocean.com/community/tutorials/how-to-run-django-with-mod_wsgi-and-apache-with-a-virtualenv-python-environment-on-a-debian-vps Just followed the same steps, set up a virtualenv in the same folder as my django app.

Ended up with the following virtual host configuration:

<Directory /storage/sandbox/www/django/sampleapp/static>
    Allow from all
    Order deny,allow
</Directory>
<Directory /storage/sandbox/www/django/sampleapp/media>
    Allow from all
    Order deny,allow
</Directory>
WSGIScriptAlias / /storage/sandbox/www/django/sampleapp/sampleapp/wsgi.py
WSGIPythonPath /storage/sandbox/www/django/sampleapp/:/storage/sandbox/www/django/env/lib/python2.7/site-packages
<Directory /storage/sandbox/www/django/sampleapp/sampleapp>
    <Files wsgi.py>
        Allow from all
        Order deny,allow
    </Files>
</Directory>


来源:https://stackoverflow.com/questions/16854023/how-can-i-rebuild-my-mod-wsgi-to-use-python-2-7-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!