【问题标题】:Python 3.5 and mod_wsgiPython 3.5 和 mod_wsgi
【发布时间】:2016-08-22 22:18:48
【问题描述】:

我使用 Python 3.5 和 virtualenv,我正在尝试将它与 mod_wsgi 连接

Exception occurred processing WSGI script '/home/myapp/my_app/my_app/wsgi.py'.
Traceback (most recent call last):
File "/home/myapp/my_app/my_app/wsgi.py", line 12, in <module>
from django.core.wsgi import get_wsgi_application
ImportError: No module named 'django'

Apache 配置:

...
DocumentRoot /home/myapp/my_app/
WSGIScriptAlias / /home/myapp/my_app/my_app/wsgi.py
WSGIDaemonProcess python-path=/home/myapp/my_app/:/home/myapp/myapp_venv/lib/python3.5/site-packages:/home/myapp

<Directory /home/myapp/my_app/ad_server>
  <Files wsgi.py>
    Require all granted
  </Files>
</Directory>
<Location "/">
   Require all granted
</Location>
Alias /static /home/myapp/my_app/static
...

还有 wsgi

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_app.settings")

application = get_wsgi_application()

我做错了什么?

【问题讨论】:

标签: django mod-wsgi


【解决方案1】:

您缺少WSGIDaemonProcess 的进程组名称,并且还缺少WSGIScriptAlias 的相应WSGIProcessGroup 指令或process-group 选项。因此,即使有进程组名称,WSGI 应用程序也不会在守护进程组中运行,因此不知道虚拟环境。

用途:

WSGIDaemonProcess my_app python-home=/home/myapp/myapp_venv python-path=/home/myapp/my_app
WSGIScriptAlias / /home/myapp/my_app/my_app/wsgi.py process-group=my_app application-group=%{GLOBAL}

指令必须按此顺序排列,因此在将process-group 选项用于WSGIScriptAlias 时,请确保WSGIDaemonProcess 指令位于第一位。

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 2017-02-26
    • 2011-09-24
    • 2017-10-13
    • 1970-01-01
    • 2015-03-21
    • 2015-04-25
    • 2023-03-08
    • 2017-11-15
    相关资源
    最近更新 更多