15

我按照https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/uwsgi/中的说明进行操作,直到几天前我杀死了 uwsgi 进程并尝试重新启动时它工作正常。然后它说

uwsgi: unrecognized option '--module=MyProject.wsgi:application'

我一直在努力解决这个问题,......我已经检查了我的提交历史并且我用来启动 uwsgi 的脚本没有改变:

#!/bin/bash
# https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/uwsgi/
uwsgi --chdir=/home/MyProject \
    --module=MyProject.wsgi:application \
    --env DJANGO_SETTINGS_MODULE=MyProject.settings \
    --master --pidfile=/tmp/MyProject-masted.pid \
    --socket=/home/MyProject.sock \
    --processes=5 \
    --harakiri=20 \
    --limit-as=128 \
    --max-requests=5000 \
    --vacuum \
    --home=/home/MyProject/env \
    --daemonize=/var/log/uwsgi/MyProject.log

显然有些东西一定发生了变化,但我看不到什么......我没有运行任何更新,脚本没有改变......请帮助!

4

2 回答 2

38

您可能需要将--plugins选项添加到命令行以使用系统安装的 uwsgi。至少在 Fedora 17 上,这对我来说是必要的:

$ uwsgi --http 127.0.0.1:8000 --module=wsgiref.simple_server:demo_app
uwsgi: unrecognized option '--module=wsgiref.simple_server:demo_app'
getopt_long() error
$

但这有效:

$ uwsgi --http 127.0.0.1:8000 --plugins python --module=wsgiref.simple_server:demo_app
*** Starting uWSGI 1.2.4 (64bit) on [Thu Aug 30 14:09:57 2012] ***
[.. snip]
于 2012-08-30T18:14:00.650 回答
15

我最近在 Unbuntu 12.04 repo (1.0.3) 中尝试使用 uWSGI 版本时遇到了这个问题。看起来那个版本有点旧了。只需使用 pip 抓取它(1.2.5)。

pip install uwsgi
于 2012-08-30T16:52:42.210 回答