Django - 500 internal server error “no module named django”

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-12 03:28:05

问题


django return 500 internal server error (apache 2.4.10, ubuntu 15.04, django 1.9.6)

apache log:

[wsgi:warn] mod_wsgi: Compiled for Python/3.4.2.
[wsgi:warn] mod_wsgi: Runtime using Python/3.4.3.
[mpm_event:notice] AH00489: Apache/2.4.10 (Ubuntu) mod_wsgi/4.3.0  Python/3.4.3 configured -- resuming normal operations
[core:notice] [pid 9973:tid 140000454645632] AH00094: Command line: '/usr/sbin/apache2'
[wsgi:error] mod_wsgi (pid=9976): Target WSGI script '/home/user/KeyShare/KeyShare/wsgi.py' cannot be loaded as Python module.
[wsgi:error] mod_wsgi (pid=9976): Exception occurred processing WSGI script '/home/user/KeyShare/KeyShare/wsgi.py'.
[wsgi:error] traceback (most recent call last):
[wsgi:error] File "/home/user/KeyShare/KeyShare/wsgi.py", line 12, in  <module>
[wsgi:error] from django.core.wsgi import get_wsgi_application
[wsgi:error] ImportError: No module named 'django'

/etc/apache2/sites-available/000-default.conf file:

Alias /static /home/user/proj/Gestione/static
<Directory /home/user/proj/Gestione/static>
    Require all granted
</Directory>

<Directory /home/user/proj/proj>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>
WSGIDaemonProcess proj python-path=/home/user/proj:/home/user/.local/lib/python3.4/site-p$
WSGIProcessGroup proj
WSGIScriptAlias / /home/user/proj/proj/wsgi.py

wsgy.py:

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

I'm NOT using virtualenv

thanks for help

related question: HERE

EDIT: I had installed django with non-root user, now I reinstall it as root user and It works. Thanks everyone


回答1:


It seems like you are missing django. This error is returned by wsgi not django. You can check using pip freeze. Make sure django is listed in the output of pip freeze. Else install django with pip using command

pip install django

It is always recommended to use virtual environment to avoid messing up with global dependencies. If working in a virtual environment does not create any problems for you, then go for virtual environment.




回答2:


In my guess, adding path to wsgi.py may help:

import os
import sys
from django.core.wsgi import get_wsgi_application

path = '/path/to/your/project'

if path not in sys.path:
    sys.path.append(path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
application = get_wsgi_application()


来源:https://stackoverflow.com/questions/37255292/django-500-internal-server-error-no-module-named-django

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!