【问题标题】:trouble with supervisor starting gunicorn主管启动 gunicorn 的麻烦
【发布时间】:2014-03-23 17:01:43
【问题描述】:

我是 django 的新手并熟悉它。

我正在使用主管和 gunicorn。我正在关注这本书“实用的 django 项目”。一切 django、supervisor 等都在 virtualenv 中运行。

我正在尝试创建一个独立的 django 应用程序。我创建了一个名为 blog 的文件夹并将其放在主目录下。然后我添加了 PYTHONPATH 的路径。我可以清楚地看到从 ipython 成功添加的 python 路径。但是当我将此博客添加到我的 django 项目的已安装应用程序设置中时,主管开始出现问题。

我已经看到了日志文件和它No module named blog

我的主管配置文件是这个

[program:gunicorn]
command = ./manage.py run_gunicorn -w 4 -k gevent
directory = /home/krishna/workspace/django/learn/
user = krishna
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/gunicorn.log
stderr_logfile = /var/log/supervisor/gunicorn_err.log

但更让我沮丧的是,当我使用终端中的 supervisor conf 文件中的命令时,gunicorn 会平静地启动。

附加信息:

sys.path 的输出

/home/krishna/.virtualenvs/py1/bin
/home/krishna/workspace/django/apps
/home/krishna/workspace/django
/home/krishna/workspace
/home/krishna/workspace/django/learn
/home/krishna/.virtualenvs/py1/lib/python2.7
/home/krishna/.virtualenvs/py1/lib/python2.7/plat-x86_64-linux-gnu
/home/krishna/.virtualenvs/py1/lib/python2.7/lib-tk
/home/krishna/.virtualenvs/py1/lib/python2.7/lib-old
/home/krishna/.virtualenvs/py1/lib/python2.7/lib-dynload
/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/home/krishna/.virtualenvs/py1/local/lib/python2.7/site-packages
/home/krishna/.virtualenvs/py1/local/lib/python2.7/site-packages/IPython/extensions

我的博客文件夹在/home/krishna/workspace/django/apps

编辑:我包含了我的博客文件夹的文件结构

drwxr-xr-x 2 krishna krishna  4096 Feb 22 01:12 .
drwxr-xr-x 3 krishna krishna  4096 Feb 22 00:17 ..
-rw-r--r-- 1 krishna krishna     0 Feb 22 00:18 admin.py
-rw-r--r-- 1 krishna krishna   136 Feb 22 01:09 admin.pyc
-rw-r--r-- 1 krishna krishna 12288 Feb 22 00:27 .admin.py.swp
-rw-r--r-- 1 krishna krishna     0 Feb 22 00:17 __init__.py
-rw-r--r-- 1 krishna krishna   139 Feb 22 00:33 __init__.pyc
-rw-r--r-- 1 krishna krishna   222 Feb 22 00:23 models.py
-rw-r--r-- 1 krishna krishna   743 Feb 22 00:33 models.pyc
-rw-r--r-- 1 krishna krishna     0 Feb 22 00:18 views.py

【问题讨论】:

  • gunicorn.log 或 gunicorn_err.log 中是否有任何内容?
  • 正如我已经提到的错误日志说模块博客不存在
  • 在文件层次结构中显示您的源代码树(即您的 django 源文件)。应该有一个名为 blog 的目录。并且该目录中应该有一个名为__init__.py 的文件。本题涉及未找到模块的问题:stackoverflow.com/questions/1260792/…
  • 我正在更新问题

标签: python django virtualenv gunicorn supervisord


【解决方案1】:

你需要把PYTHONPATH放到supervisord创建的环境中运行./manage.py,supervisord不会从你设置PYTHONPATH的地方继承环境变量。

[program:gunicorn]
command = ./manage.py run_gunicorn -w 4 -k gevent
directory = /home/krishna/workspace/django/learn/
user = krishna
autostart = true
autorestart = true
environment=PYTHONPATH="[Your PYTHONPATH goes here]"
stdout_logfile = /var/log/supervisor/gunicorn.log
stderr_logfile = /var/log/supervisor/gunicorn_err.log

有关更多信息,请查看the docs 中的environment

【讨论】:

    【解决方案2】:

    我已经配置了一个具有类似设置的系统。我使用安装在 virtualenv 主目录中的bin 目录中的gunicorn_django 包装器来启动 django 项目。包装由 gunicorn 提供。

    我认为这对你有用(只要记住调整你的 virtalenv 目录的路径):

    [program:gunicorn]
    command=/path/to/virtualenv_dir/bin/gunicorn_django -w 4 -k gevent
    directory=/home/krishna/workspace/django/learn/
    user=krishna
    autostart=true
    autorestart=true
    stdout_logfile = /var/log/supervisor/gunicorn.log
    stderr_logfile = /var/log/supervisor/gunicorn_err.log
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2012-04-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多