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

Tim*_*ook 9 apache django postgresql psycopg2 centos6

我有一个在Apache下运行的Django 1.5,Python 2.7站点,在CentOS 6.4服务器上使用mod_wsgi.

我使用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>
Run Code Online (Sandbox Code Playgroud)

两个安装上的wsgi.py文件相同:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mlhim.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?明显的疏忽?谢谢

nic*_*ius 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


Tim*_*ook 4

问题是 mod_wsgi 是为 Python 2.7 编译的,需要为 Python 3.3 重新编译。我没有在任何地方找到新的 mod_wsgi 作为包,所以我重新编译了它。

由于 Python 3 是 CentOS 6.4 上的替代安装,因此即使传递 --with-python 选项,configure 也很难生成良好的 Makefile。从 python3.3-config --cflags 以及 --ldflags 选项获取信息后,我需要编辑一下 Makefile。

HTH 未来的某个人。