加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:48:28 所属栏目:Python 来源:网络整理
导读:我在AWS上的Ubuntu 14.04中设置了一个应用程序 – NGINX – UWSGI – DJANGO APP. 当使用sqllite3时,应用程序运行完全正常,但是当我使用 django.db.backends.postgresql_psycopg2w作为我的数据库引擎时,它无法加载,我在uwsgi日志中找到了这个: - *** Starti
我在AWS上的Ubuntu 14.04中设置了一个应用程序 – > NGINX – > UWSGI – > DJANGO APP.
当使用sqllite3时,应用程序运行完全正常,但是当我使用 django.db.backends.postgresql_psycopg2w作为我的数据库引擎时,它无法加载,我在uwsgi日志中找到了这个:

- *** Starting uWSGI 2.0.12 (64bit) on [Mon Jan 18 05:36:25 2016] ***
 - compiled with version: 4.8.4 on 18 January 2016 04:10:30
 - os: Linux-3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015
 - nodename: ip-172-31-55-58
 - machine: x86_64
 - clock source: unix
 - detected number of CPU cores: 1
 - current working directory: /var/www/carzumer_api
 - detected binary path: /usr/local/bin/uwsgi
 - !!! no internal routing support,rebuild with pcre support !!!
 - setgid() to 33
 - setuid() to 33
 - chdir() to /var/www/carzumer_api/src/
 - your processes number limit is 7862
 - limiting address space of processes...
 - your process address space limit is 134217728 bytes (128 MB)
 - your memory page size is 4096 bytes
 -  *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
 - detected max file descriptor number: 1024
 - lock engine: pthread robust mutexes
 - thunder lock: disabled (you can enable it with --thunder-lock)
 - uwsgi socket 0 bound to UNIX address /var/www/carzumer_api/run/uwsgi.sock fd 6
 - Python version: 2.7.6 (default,Jun 22 2015,18:01:27)  [GCC 4.8.2]
 - Set PythonHome to /var/www/carzumer_api/env
 - *** Python threads support is disabled. You can enable it with --enable-threads ***
 - Python main interpreter initialized at 0x2047200
 - your server socket listen backlog is limited to 100 connections
 - your mercy for graceful operations on workers is 60 seconds
 - mapped 363840 bytes (355 KB) for 4 cores
 - *** Operational MODE: preforking ***
Traceback (most recent call last):
  File "./carzumer_api/wsgi.py",line 16,in <module>
    application = get_wsgi_application()
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/core/wsgi.py",line 14,in get_wsgi_application
    django.setup()
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/__init__.py",line 18,in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/apps/registry.py",line 108,in populate
    app_config.import_models(all_models)
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/apps/config.py",line 198,in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py",line 37,in import_module
    __import__(name)
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/contrib/auth/models.py",line 41,in <module>
    class Permission(models.Model):
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/models/base.py",line 139,in __new__
    new_class.add_to_class('_meta',Options(meta,**kwargs))
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/models/base.py",line 324,in add_to_class
    value.contribute_to_class(cls,name)
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/models/options.py",line 250,in contribute_to_class
    self.db_table = truncate_name(self.db_table,connection.ops.max_name_length())
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/__init__.py",line 36,in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS],item)
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/utils.py",line 240,in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/utils.py",line 111,in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/lib/python2.7/importlib/__init__.py",in import_module
    __import__(name)
  File "/var/www/carzumer_api/env/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py",line 24,in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: libgpg-error.so.0: failed to map segment from shared object: Cannot allocate memory
 - unable to load app 0 (mountpoint='') (callable not found or import error)
 - *** no app loaded. going in full dynamic mode ***
 - *** uWSGI is running in multiple interpreter mode ***
 - spawned uWSGI master process (pid: 11351)
 - spawned uWSGI worker 1 (pid: 11354,cores: 1)
 - spawned uWSGI worker 2 (pid: 11355,cores: 1)
 - --- no python application found,check your startup logs for errors ---
{address space usage: 81760256 bytes/77MB} {rss usage: 21651456 bytes/20MB} [pid: 11355|app: -1|req: -1/1] 127.0.0.1 () {32 vars in 351 bytes} [Mon Jan 18 05:37:50 2016] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 82 bytes (0 switches on core 0)

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

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

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

解决方法

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

limit-as = 128

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读