所以我第一次尝试让Django与mod-wsgi一起运行。我已经对Apache进行了配置,如示例所示,我非常确定我做的一切都是正确的。
我没有设置PYTHON_EGG_CACHE变量,所以它使用默认值:/var/www/.python-eggs。我已经创建了这个目录,并使其对用户www-data可写。
当我打开站点时,它显示了500.html模板的输出,下面是我在日志中得到的:
...
File "/usr/local/.../parts/django/django/db/__init__.py", line 17, in load_backend
return import_module('.base', 'django.db.backends.%s' % backend_name)
File "/usr/local/.../parts/django/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/.../parts/django/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
ImproperlyConfigured: Error loading psycopg2 module: cannot import name tz下面是我在/var/www/.python-eggs/中拥有的内容
# ls -la /var/www/.python-eggs/
total 12
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 .
drwxr-xr-x 5 root root 4096 Jan 27 04:18 ..
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 psycopg2-2.0.13-py2.5-linux-i686.egg-tmp
# ls -la /var/www/.python-eggs/psycopg2-2.0.13-py2.5-linux-i686.egg-tmp/psycopg2/
total 368
drwxr-xr-x 2 www-data www-data 4096 Jan 27 04:19 .
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 ..
-rwxr-xr-x 1 www-data www-data 363318 Jan 22 03:44 _psycopg.sopsycopg2 egg目录中唯一的文件是_psycopg.so。没有tz.py文件,我认为这就是问题所在。
敬请指教。
另外,我使用buildout和djangorecipe来部署Django。我使用buildout用户运行buildout脚本。不过,我不确定这是否有意义。
因为我可以运行syncdb,所以正确安装了P.P.S,psycopg2。
发布于 2010-02-04 14:55:25
好了,我已经找到解决方案了。我已经使用了系统python来构建,它已经在站点包中有了psycopg2。似乎系统站点包中的psycopg2与buildout安装的存在某种冲突。我已经设置了一个虚拟的python环境,并将其用于构建。这很有帮助!不再有导入错误。
发布于 2010-01-29 05:44:26
我建议,如果您能够从命令行导入它,那么在路径上的某个位置,www-data用户将被禁止访问egg路径。
https://stackoverflow.com/questions/2146599
复制相似问题