2012-08-30 90 views
13

我按照https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/uwsgi/中的說明操作,直到幾天前,我終止uwsgi進程並嘗試重新啓動時才正常工作。然後它說uwsgi:無法識別的選項'--module = MyProject.wsgi:應用程序'

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 

顯然有些東西必須改變,但我不能看到什麼......我沒有運行任何更新,腳本沒有改變... PlEaSe HeLp !!!

回答

14

我試圖在Unbuntu 12.04回購(1.0.3)中使用uWSGI的版本時遇到了這個問題。它看起來很喜歡這個版本有點舊。只需使用點即可抓取它(1.2.5)。

pip install uwsgi 
+0

Ouuf!非常感謝! – sebpiq

+0

如果你想堅持uwsgi的Ubuntu版本,請閱讀第二個答案! –

+0

安裝pip版本會殺死「sudo service uwsgi start/stop」,它也會停止從/ etc/uwsgi讀取....所以在你做之前請閱讀下面的答案。 –

33

您可能需要將--plugins選項添加到您的命令行以使用系統安裝的uwsgi。在Fedora 17,至少,這是neccesary對我來說:

$ 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]
+1

我發現參數的排序很重要。如果我在傳遞--plugins python之前嘗試傳遞--wsgi-file參數,它似乎不起作用。我收到一條消息,指出「未經註冊的參數」。 –

相關問題