subscribe
という1つのアプリを持つDjangoプロジェクトがあります。ルートurls.py
で、私はsubscribe
のurls.py
からインクルードを使用します。Django uwsgiインポートエラー
私はINSTALLED_APPS
subscribe
に入れてsubscribe
さんurls.py
に私は自分の意見を呼び出すためのsubscribe.views.<name>
を使用しています。サーバーをpython manage.py runserver
として実行すると、ローカルですべて正常に動作します。しかし、サーバがvirtualenvでnginx + uwsgiを実行すると、私はImportError: No module named subscribe
を得ました。 subscribe
をproject.subscribe
に変更してINSTALLED_APPS
に、subscribe
のurls.py
をsubscribe.views.<name>
からproject.subscribe.views.<name>
に変更すると問題なく動作します。
uwsgi設定:
[uwsgi]
socket = 127.0.0.1:9003
workers = 2
master = true
virtualenv = /home/user/python
chdir = /home/user
env = DJANGO_SETTINGS_MODULE=project.settings
module = django.core.handlers.wsgi:WSGIHandler()
daemonize = /home/user/uwsgi.log
なぜ私は絶対パスのインポートとどのように私はvirtualenvのバックnginxの+ uwsgi上の相対的にそれを変更することができますを使用する必要がありますか?
はどちらか、すでに含まvirtualenvの起動スクリプトを介して、またはそれ以外の場合は –
私の起動スクリプトあなたのpythonのパスに 'project'を追加それは: sys.path.insert(0、 '/ home/user/project') – ZedXter
__init__.pyをパッケージとしたDjangoの脅威フォルダとyoあなたの 'wsgi'スクリプトで'/home/user/project'をルートディレクトリとして設定するので、 'python manage.py runserver'が動作するのと同じように動作するはずです。 –