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,问题解决。
正在尝试在 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,问题解决。