Django WSGI没有名为“site”的模块

2024-10-01 02:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索、尝试并运行了几乎所有可用的教程来运行我的django应用程序,包括apache,甚至nginx(其中大多数都超过3或4年了)。在

在我放弃之前,我已经成功地完成了所有工作的一部分,现在我尝试使用apache2,到目前为止我遇到的唯一错误是wsgi.py,其他一切都很好,但是跑步

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

给出以下错误:

^{pr2}$

我的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\u wsgi_应用程序 应用程序=获取\u wsgi_application()

我也试过用默认值运行它wsgi.py无济于事。 至于项目的其余部分,它只是一个全新的django项目,除了将虚拟环境放在/var/www/shinra/env/shinra/bin内之外,没有其他任何修改。谢谢,我已经和这个战斗了一段时间了,我是django的新手。在apache2中运行它显然会在apache日志中产生相同的错误。在

编辑:我还想在amazonwebservicesec2实例中运行它

更新:

我再次尝试使用gunicorn从头开始做任何事情,到目前为止,如果我在我的虚拟环境中运行,它就可以工作了

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

但是如果我用supervisor设置它,我会得到这个错误:

[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

Tags: inpyselfinfowsgihomevenvsubuntu
1条回答
网友
1楼 · 发布于 2024-10-01 02:26:02

我终于明白了!我的管理器配置缺少一些参数:

[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

相关问题 更多 >