2017-06-21 16 views
1

私は、Apacheやnginx(ほとんどのものは3〜4歳以上)でdjangoアプリケーションを実行するためのほとんどのチュートリアルを検索、試して実行しました。Django WSGI 'site'という名前のモジュールはありません

私はあきらめるまで、私はapache2でしようとしていますが、これまでの唯一のエラーはwsgi.py、それ以外のものはありませんでした。正常に動作しますが、

sudo python3 -i /var/www/shinra/shinra/wsgi.py 

を実行すると、私は次のエラーを与える:次のように

Traceback (most recent call last): 
    File "/var/www/shinra/shinra/wsgi.py", line 23, in <module> 
    application = get_wsgi_application() 
    File "/home/ubuntu/.local/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
    django.setup(set_prefix=False) 
    File "/home/ubuntu/.local/lib/python3.5/site-packages/django/__init__.py", line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
    File "/home/ubuntu/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 56, in __getattr__ 
    self._setup(name) 
    File "/home/ubuntu/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/home/ubuntu/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 110, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked 
ImportError: No module named 'shinra' 

マイwsgi.pyが設定されている:

import os 
import sys 

PROJECT_DIR = '/var/www/shinra' 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shinra.settings") 
def execfile(filename): 
    globals = dict(__file__ = filename) 
    exec(open(filename).read(), globals) 

activate_this = os.path.join(PROJECT_DIR, 'env/shinra/bin', 'activate_this.py') 
execfile(activate_this) 
django.core.wsgi輸入get_wsgi_application アプリケーション= get_wsgi_applicationから

()

私も無駄にデフォルトwsgi.pyでそれを実行してみました。 プロジェクトの残りの部分は、ちょうど真新しいdjangoプロジェクトです。そこにはバーチャル環境を入れない以外は変更されていません/var/www/shinra/env/shinra/bin。ありがとう、私はこれとしばらくの間戦ってきました、そして、私はdjangoには新しいです。 apache2でこれを実行すると、明らかにApacheのログに同じエラーが発生します。

EDIT:また、私はAmazon WebサービスEC2インスタンスに

をこれを実行しようとしていることを言及して良いでしょうUPDATE:

私はgunicornを使用して最初からすべてをやってみました再び、これまでのところそれは私の仮想環境上でイム場合は動作し

/home/ubuntu/venvs/shinra/bin/gunicorn -c /home/ubuntu/shinra/scripts/gunicorn_config.py shinra.wsgi 

を実行します。しかし、私は上司を使用していることを設定する場合、私はこのエラーを取得する:

[2017-06-21 05:15:25 +0000] [10320] [INFO] Starting gunicorn 19.7.1 
[2017-06-21 05:15:25 +0000] [10320] [INFO] Listening at: http://0.0.0.0:8000 (10320) 
[2017-06-21 05:15:25 +0000] [10320] [INFO] Using worker: sync 
[2017-06-21 05:15:25 +0000] [10323] [INFO] Booting worker with pid: 10323 
[2017-06-21 05:15:25 +0000] [10323] [ERROR] Exception in worker process 
Traceback (most recent call last): 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker 
    worker.init_process() 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process 
    self.load_wsgi() 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi 
    self.wsgi = self.app.wsgi() 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/home/ubuntu/venvs/shinra/lib/python3.5/site-packages/gunicorn/util.py", line 352, in import_app 
    __import__(module) 
ImportError: No module named 'shinra' 
[2017-06-21 05:15:25 +0000] [10323] [INFO] Worker exiting (pid: 10323) 
[2017-06-21 05:15:25 +0000] [10320] [INFO] Shutting down: Master 
[2017-06-21 05:15:25 +0000] [10320] [INFO] Reason: Worker failed to boot. 

gunicornの設定ファイルは次のとおりです。

command = '/home/ubuntu/venvs/shinra/bin/gunicorn' 
pythonpath = '/home/ubuntu/venvs/shinra/bin/python' 
bind = '0.0.0.0:8000' 
workers = 3 
+0

通常、Pythonで直接「wsgi.py」を実行することはできません。 Apacheの場合、Djangoの指示はhttps://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/にあります。設定した内容を示唆することはあなたの質問に何もないので、 Apacheのために働いていないかもしれないもの。 –

答えて

1

私はついにそれを考え出しました!スーパーバイザの設定にいくつかのパラメータがありませんでした。

[program:shinra_gunicorn] 
command=/home/ubuntu/venvs/shinra/bin/gunicorn -c /home/ubuntu/shinra/gunicorn_config.py shinra.wsgi 
directory=/home/ubuntu/shinra 
environment=PATH="/home/ubuntu/venvs/shinra/bin" 
autostart=true 
autorestart=true 
stderr_logfile=/var/log/shinra.err.log 
stdout_logfile=/var/log/shinra.out.log 
関連する問題