我在CentOS 6.4服务器上运行带有mod_wsgi的Apache下运行的Django 1.5,Python 2.7站点。
我使用Django 1.6和Python 3.3重建了这个站点。将它部署到同一服务器并更改httpd.conf中的路径我得到了主题错误。这个新安装使用./manage.py runserver按预期工作。
以下是httpd.conf中的两个WSGI定义:
WSGIScriptAlias / /home/ccdgen/CCDGEN2/apache/wsgi.py
WSGIPythonPath /home/ccdgen/CCDGEN2/ccdgen/ccdgen:/home/ccdgen/CCDGEN2/ccdgen:/home/ccdgen/CCDGEN2/lib/python3.3/site-packages
<Directory /home/ccdgen/CCDGEN2/ccdgen>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
#WSGIScriptAlias /ccdgen /home/ccdgen/CCDGEN/apache/wsgi.py
#WSGIPythonPath /home/ccdgen/CCDGEN/mlhim/ccdgen:/home/ccdgen/CCDGEN/mlhim:/home/ccdgen/CCDGEN/lib/python2.7/site-packages
#<Directory /home/ccdgen/CCDGEN/mlhim>
# <Files wsgi.py>
# Order allow,deny
# Allow from all
# </Files>
#</Directory>
两个安装中的wsgi.py文件相同:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mlhim.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
有什么想法吗?明显的疏忽?感谢
答案 0 :(得分:11)
我最近遇到了这个问题:
ImproperlyConfigured: Error loading psycopg2 module: No module named _psycopg
......这个命令就是答案:
sudo apt-get install libapache2-mod-wsgi-py3
参考:
答案 1 :(得分:4)
问题是mod_wsgi是为Python 2.7编译的,需要为Python 3.3重新编译。我没有在任何地方找到一个新的mod_wsgi作为包,所以我重新编译它。
由于Python 3是CentOS 6.4上的备用安装。配置很难生成一个好的Makefile,甚至传递--with-python选项。在从python3.3-config --cflags以及--ldflags选项获取信息后,我需要稍微编辑Makefile。
HTH未来有人。答案 2 :(得分:3)
尝试使用Debian,Ubuntu
这些命令sudo apt-get install python-dev
sudo apt-get install libpq-dev
适用于RedHat Enterprise,Fedora,CentOS
sudo yum install python-devel
sudo yum install postgresql-libs
然后安装psycopg2
pip install psycopg2
答案 3 :(得分:0)
正如已经提到的,mod_wsgi尚未针对python 3进行编译。一种选择是使用Software Collections和/或使用nginx,以及“pip install uwsgi”,它可以节省大量编译和运行自定义包