重要错误:没有命名的模块Django.core.wsgi使用nginx部署时

2024-10-03 23:25:48 发布

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

这个问题问了saverel时代。我尝试了所有的方法,但是我无法解决这个错误。我正在使用nginx部署我的django应用程序,但是遇到了这个错误。 我的wsgi文件

import os, sys
# add the hellodjango project path into the sys.path
sys.path.append('/home/ubuntu/webapps/microbird/lib/python2.7/site-packages')


os.environ.setdefault("DJANGO_SETTINGS_MODULE", "microbird.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我得到了这个错误

^{pr2}$

~

我的runmicro.ini文件文件

[uwsgi]
socket = 127.0.0.1:3031
chdir = /home/ubuntu/webapps/microbird
wsgi-file = microbird/wsgi.py
processes = 2
threads = 1
stats = 127.0.0.1:9191
virtualenv = /home/ubuntu/webapps/env
plugin=python
home = /home/ubuntu/webapps/env

~ 

micro\nginx文件是

server {

        listen 80 default;

        client_max_body_size 4G;

        # server_name example.com www.example.com;

        server_name microbird.in;

        keepalive_timeout 5;
        error_log /var/log/nginx/error.log;
        #root /home/ubuntu/projects/textproject;

        location / {

        include uwsgi_params;

        uwsgi_pass 127.0.0.1:3031;
        #proxy_pass http://127.0.0.1:8002;
        }

        location /static {

        autoindex on;

        alias /home/ubuntu/webapps/microbird/static;

        }
        location /media {

                alias /home/ubuntu/webapps/microbird/media;

        }
}

我能帮我解决这个问题吗


Tags: 文件pathlogwsgihomeserverapplicationubuntu
1条回答
网友
1楼 · 发布于 2024-10-03 23:25:48

好吧,错误很简单:

Traceback (most recent call last):
  File "microbird/wsgi.py", line 20, in <module>
    from django.core.wsgi import get_wsgi_application
ImportError: No module named django.core.wsgi

django不在Python的模块搜索路径上。为了找出原因,我建议在wsgi.py文件中放入一些调试代码,下面是一个开始:

^{pr2}$

(假设系统路径或者您的Python是找不到django的原因)。在

如果你想使用虚拟机,那么你需要激活它。以下是我的操作方法(在wsgi.py文件中):

VIRTUAL_ENV = '/path/to/root/of/virtualenv/'
# activate virtualenv
_activate = "%s/%s/activate_this.py" % (
    VIRTUAL_ENV,
    'Scripts' if sys.platform == 'win32' else 'bin'
)
if sys.version_info >= (3, 0):
    exec(compile(open(_activate, 'rb').read(), _activate, 'exec'))
else:
    execfile(_activate, dict(__file__=_activate))

我不确定python3分支的工作情况(从未使用过)。在

相关问题 更多 >