【问题标题】:nginx + uwsgi + django "could not import settings"nginx + uwsgi + django“无法导入设置”
【发布时间】:2014-02-01 17:17:30
【问题描述】:

好吧,我一定是太愚蠢了,但我不知道如何让这个工作,我有将近两个小时,我不能再进步了,我真的不知道出了什么问题,我已经阅读了很多指南,我一切都很好..

但是让我们粘贴你的配置:

目录结构:

├── apps
├── config
    └── wsgi.py
    ├── settings.py
├── dev
├── env
├── static
│   ├── css
│   ├── img
│   └── js
│       └── vendor
└── templates
    ├── admin
    │   └── supervisor
    └── base
├── manage.py

wsgi.py

import os
import sys

from site import addsitedir
from os.path import abspath, dirname, join

sys.path.insert(0, abspath(join(dirname(__file__), "..")))
sys.path.insert(0, abspath(join(dirname(__file__), "../apps")))
sys.path.insert(1, abspath(join(dirname(__file__), "../config")))

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

backoffice.ini

[uwsgi]
chdir = /var/www/backoffice
mountpoint = /var/www/backoffice
gid = www-data
uid = www-data
socket = /tmp/uwsgi.backoffice.sock
virtualenv = /var/www/backoffice/env
plugins = python
master = True
chmod-socket = 666
memory-report = 1
harakiri = 20
processes = 4
profiler = 1
pythonpath = /var/www/backoffice
vacuum = True
max-requests = 5000

然后我运行以下命令:

uwsgi --ini /var/www/backoffice/backoffice.ini -b 32000 --wsgi-file /var/www/backoffice /config/wsgi.py

我得到“无法导入它在 sys.path 上的设置”的错误,当然是!

系统路径

['/var/www/backoffice/', '.', '', '/var/www/backoffice/env/local/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg', '/var/www/backoffice/env/local/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg', '/var/www/backoffice/env/src/django-logicaldelete', '/var/www/backoffice/env/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg', '/var/www/backoffice/env/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg', '/var/www/backoffice/env/lib/python2.7', '/var/www/backoffice/env/lib/python2.7/plat-i386-linux-gnu', '/var/www/backoffice/env/lib/python2.7/lib-tk', '/var/www/backoffice/env/lib/python2.7/lib-old', '/var/www/backoffice/env/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-i386-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/www/backoffice/env/local/lib/python2.7/site-packages', '/var/www/backoffice/env/lib/python2.7/site-packages']

有什么提示吗?什么太明显了,我没有看到......谢谢

【问题讨论】:

  • 你能在 Python shell 中 import config.settings 激活 virtualenv 吗?
  • 是的,当我在 virtualenv 上运行 python manage.py shell 并导入 config.settings 时一切正常
  • 即使你不在/var/www/backoffice/?
  • 是的,我运行:python /var/www/backoffice/manage.py shell 然后:import config.settings 并且工作正常。
  • 您是如何从问题末尾获得sys.path 的?看起来您通过 sys.path.insert(应用程序、配置)所做的更改不在那里——您是在 wsgi 文件中还是 print sys.path 或其他什么?

标签: django ubuntu nginx uwsgi


【解决方案1】:

我再次检查,@sk1p 指出我的设置可能存在问题,在深度调试后确实如此,我正在导入翻译库,这导致了循环导入问题。

感谢大侠的帮助

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 2011-03-12
    • 1970-01-01
    • 2019-03-03
    • 2018-03-19
    • 2014-06-06
    • 1970-01-01
    • 2019-05-01
    • 2012-02-28
    相关资源
    最近更新 更多