500内部服务器错误:Python 3.5,Django和mod_wsgi

时间:2017-12-27 06:47:51

标签: django python-3.x apache mod-wsgi

我试图在DigitalOcean上部署Python / Django应用程序并收到以下错误:

apache error.log

[wsgi:error] [pid 17060]     from django.core.wsgi import get_wsgi_application
[wsgi:error] [pid 17060] ImportError: No module named 'django'
[wsgi:error] [pid 17060] mod_wsgi (pid=17060): Target WSGI script '/var/www/demo-app/src/demo/demo/wsgi.py' cannot be loaded as Python module.
[wsgi:error] [pid 17060] mod_wsgi (pid=17060): Exception occurred processing WSGI script '/var/www/demo-app/src/demo/demo/wsgi.py'.
[wsgi:error] [pid 17060] Traceback (most recent call last):
[wsgi:error] [pid 17060]   File "/var/www/demo-app/src/demo/demo/wsgi.py", line 12, in <module>
[wsgi:error] [pid 17060]     from django.core.wsgi import get_wsgi_application
[wsgi:error] [pid 17060] ImportError: No module named 'django'
[wsgi:error] [pid 17060] mod_wsgi (pid=17060): Target WSGI script '/var/www/demo-app/src/demo/demo/wsgi.py' cannot be loaded as Python module.
[wsgi:error] [pid 17060] mod_wsgi (pid=17060): Exception occurred processing WSGI script '/var/www/demo-app/src/demo/demo/wsgi.py'.
[wsgi:error] [pid 17060] Traceback (most recent call last):
[wsgi:error] [pid 17060]   File "/var/www/demo-app/src/demo/demo/wsgi.py", line 12, in <module>
[wsgi:error] [pid 17060]     from django.core.wsgi import get_wsgi_application
[wsgi:error] [pid 17060] ImportError: No module named 'django'

我的设置如下:

Ubuntu==16.04
django==1.11.4
apache==2.4.18
mod-wsgi==4.5.22
python 3.5(virtualenv)
libapache2-mod-wsgi-py3

我的Apache配置文件:

<VirtualHost *:80>
        WSGIDaemonProcess demo-app python-path=/var/www/demo-app/src/demo:/var/www/demo-app/demoenv/lib/python3.5/site-packages
        WSGIProcessGroup demo-app
        WSGIScriptAlias / /var/www/demo-app/src/demo/demo/wsgi.py
        ...
        ...
</VirtualHost>

关于我失踪的想法?

3 个答案:

答案 0 :(得分:0)

您尚未安装要求,如果已安装要求,则可能无法激活已安装要求的环境。

只需激活环境,问题就会得到解决。

答案 1 :(得分:0)

由于您在virtualenv中使用python,因此有些事情您可能做错了。我的头顶两个:

  • 您是否在运行virtualenv时安装了django,以便安装在virtualenv的site-packages中
  • 您是否将apache配置指向了正确的Python,如下所示:
  

WSGIScriptAlias / /path/to/your/wsgi.py

     

WSGIPythonPath /path/to/your/django/app:/path/to/.virtualenvs/yourvirtualenv/lib/python3.6/site-packages

答案 2 :(得分:0)

事实证明我错误配置了我的Apache Config文件。我改变了 FROM:

WSGIDaemonProcess demo-app python-path=/var/www/demo-app/src/demo:/var/www/demo-app/demoenv/lib/python3.5/site-packages

TO:

WSGIDaemonProcess demo-app python-path=/var/www/demo-app/src/demo python-home=/var/www/demo-app/demoenv

这解决了这个问题。