使用postgresql数据库时uwsgi下的django app无法启动

时间:2016-01-18 06:28:41

标签: python django postgresql nginx uwsgi

我在AWS上的 Ubuntu 14.04中设置了一个应用程序 - > NGINX - > UWSGI - > DJANGO APP 。 当使用sqllite3时,应用程序运行完全正常,但是当我使用 django.db.backends.postgresql_psycopg2w 作为我的数据库引擎时,它无法加载,我在uwsgi日志中找到了这个:

lengthList

我使用apt-get安装了以下软件包: libpq-dev python-dev postgresql postgresql-contrib nginx python-pip

psycopg2 == 2.6.1 包也安装在我的venv中。

任何人都可以指出我正确的方向,我现在已经搜索了几个小时,并且不知道它为什么会失败。

2 个答案:

答案 0 :(得分:6)

我终于弄清楚我的问题是什么。在我的uwsgi.ini文件中,我有

limit-as = 128

此开关将uwsgi进程的地址空间限制为128mb。我想这对PostgreSQL驱动程序来说还不够。取下开关后,一切都像魅力一样。 虽然找到一个有效的值而不是仅仅完全删除该值会更好。

答案 1 :(得分:1)

root例外是这样的:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: libgpg-error.so.0: failed to map segment from shared object: Cannot allocate memory

从我发现的,它可能是一个32/64位的问题。例如,请参阅此页面:

https://serverfault.com/questions/329418/cannot-allocate-memory-error-for-psycopg2-and-libgcrypt-so-on-debian-6-64bit

您可能希望使用file工具并检查libs的体系结构(特别是_psycopg.solibgpg-error.so.0)。还与python -c "import platform; print platform.architecture()"

进行比较