UWSGIログによると、エラーImportError: No module named site
が発生します。
test_proj.ini:
[uwsgi]
chdir = /home/%n/app
module = %n.wsgi
home = /home/%n/app/venv
master = true
processes = 10
chmod-socket = 664
socket = /home/%n/uwsgi/socket
daemonize = /home/%n/uwsgi/log
pidfile = /home/%n/uwsgi/pid
nginx:
server {
listen 8888;
server_name 192.168.88.187;
# Set up Django static file serving
location /static {
alias /home/test_proj/app/static/;
}
# pass all non-static request to uWSGI
location / {
uwsgi_pass unix:///home/test_proj/uwsgi/socket;
include uwsgi_params;
}
}
pipフリーズ:
Django==1.7.1
Django-braces==1.4.0
Django-cors-headers==0.13
Django-dynamic-settings==1.1.0
Django-oauth-toolkit==0.7.2
Django-uuidfield==0.5.0
djangorestframework==3.0.0
oauthlib==0.7.2
psycopg2==2.5.4
six==1.8.0
また、uWSGIをグローバルにインストールしています。 ini
ファイルに何か不足していますか、それともnginxの設定が原因ですか? ini
ファイルのさまざまな組み合わせを試しました。
また、ini
内にno-site = true
を追加してみましたが、エラーを削除して別のエラーを生成したとしても、ini
ファイルに追加しないでください。
私もこれに従いましたtutorialまだ運がありません。
ありがとう。
これが機能しなかった理由は、通常のuwsgi
コマンドを使用してpip
をインストールしたためです。マシンにPython 2&3の両方があるため、pip3
を使用してuwsgi
をインストールする必要があります。
私が実行したコマンド:pip3 install uwsgi
このエラーが発生するのは、homeディレクティブで指定された仮想環境でモジュール(サイト、OSなど)が見つからなかったためです。適切なバージョンのpipを使用するとうまくいったかもしれませんが、それはvirtualenvの問題を修正するためです。
Venvを使用している場合は、/usr/venv/bin/uwsgi
のようにvenv内にあるuwsgiの完全パスを使用してuwsgiを実行します。デフォルトのuwsgiが別の場所にある可能性があります。
which uwsgi
を試してみてください。