Django,mod_wsgi,psycopg2 ImproperlyConfigured:加载psycopg2模块时出错:没有名为_psycopg的模块

时间:2014-01-16 10:15:29

标签: django apache postgresql psycopg2 centos6

我在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()

有什么想法吗?明显的疏忽?感谢

4 个答案:

答案 0 :(得分:11)

我最近遇到了这个问题:

ImproperlyConfigured: Error loading psycopg2 module: No module named _psycopg

......这个命令就是答案:

sudo apt-get install libapache2-mod-wsgi-py3

参考:

http://python.6.x6.nabble.com/ImproperlyConfigured-Error-loading-psycopg2-module-No-module-named-psycopg-td5044145.html

答案 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”,它可以节省大量编译和运行自定义包