Django - Apache2 - Postgresql:_psycopg 错误

Django - Apache2 - Postgresql: error with _psycopg

正在尝试在 Debian 7 上的 apache (2.2) 上部署一个 django 项目。 使用 Django 1.8 和 python3.4.

的虚拟环境

出现以下错误:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named _psycop

here, and here.

的建议我都试过了

这是我的 apache 配置文件。

(以下几行嵌套在 VirtualHost 范围内)

#WSGI configuration for ds_monitor django project

Alias /static /home/pkaramol/Applications/timeds/ds_monitor/static_root
<Directory /home/pkaramol/Applications/timeds/ds_monitor/static_root>
    Allow from all
</Directory>

<Directory /home/pkaramol/Applications/timeds/ds_monitor/ds_monitor>
    <Files wsgi.py>
        Allow from all
   </Files>
</Directory>

WSGIDaemonProcess ds_monitor python-path=/home/pkaramol/Applications/timeds/ds_monitor:/home/pkaramol/Applications/timeds/venv_p34dj18/lib/python3.4/site-packages
WSGIProcessGroup ds_monitor
WSGIScriptAlias /ds_monitor  /home/pkaramol/Applications/timeds/ds_monitor/ds_monitor/wsgi.py

这在 VirtualHost 范围之外(以启用生产时虚拟环境)

WSGIPythonPath /home/pkaramol/Applications/timeds/ds_monitor:/home/pkaramol/Applications/timeds/venv_p34dj18/lib/python3.4/site-packages

另一个问题是 apache 的日志堆栈跟踪中存在以下行

 File "/usr/lib/python3.2/importlib/_bootstrap.py", line 821, in _gcd_import
    loader.load_module(name)

为什么使用系统的python 3.2?

我是否在 wsgi confs 中正确指向 virtualenv 路径方面做错了s.th?

无论如何,系统中也安装了psycopg2模块(不仅在virtualenv中)

看起来很奇怪,但整个问题很可能与 mod_wsgi 编译所针对的 python 版本有关。

我已经从 here 下载/配置/安装了 mod_wsgi 的 4.5.2 版,但忘记配置适当的 python 版本。

所以我运行再次完成整个过程(从解压缩原始压缩包开始)并配置如下:

./configure --with-python=/usr/bin/python3.5

重启apache,问题解决。