Error while configuring Django with mod_wsgi on Python inside Anaconda: "ImportError: No module named django.core.wsgi"

Error while configuring Django with mod_wsgi on Python inside Anaconda: "ImportError: No module named django.core.wsgi"

我在 ubuntu 上遇到了一些问题 运行 django+apache2。 Django 1.7、Apache2.4.7

我是 运行 anaconda 堆栈,3.4 作为主要 + python 2

上的另一个环境

我正在尝试设置简单的测试站点并收到内部错误 500,在 Apache 的错误日志中有以下错误消息:

[Sat Jan 10 11:56:16.095032 2015] [:error] [pid 14441:tid 140015774267136] [client 127.0.0.1:59135] ImportError: No module named django.core.wsgi
[Sat Jan 10 12:03:01.895432 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] mod_wsgi (pid=14439): Target WSGI script '/PATH/mysite/wsgi.py' cannot be loaded as Python module.
[Sat Jan 10 12:03:01.895483 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] mod_wsgi (pid=14439): Exception occurred processing WSGI script '/PATH/mysite/wsgi.py'.
[Sat Jan 10 12:03:01.895498 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] Traceback (most recent call last):
[Sat Jan 10 12:03:01.895515 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157]   File "/PATH/mysite/wsgi.py", line 13, in <module>
[Sat Jan 10 12:03:01.895565 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157]     from django.core.wsgi import get_wsgi_application
[Sat Jan 10 12:03:01.895582 2015] [:error] [pid 14439:tid 140015774267136] [client 127.0.0.1:59157] ImportError: No module named django.core.wsgi

wsgi.py:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

它 运行 可以

python manage.py runserver

所以这里的问题是(我认为)mod-wsgi 没有在正确的 python 上配置,因为默认 python 是 ("mod_wsgi/3.4 Python/2.7.6 configured") 和 django安装在anaconda 2.7.9 one.

如果我猜对了(请告诉我我们还需要哪些其他信息来解决问题) 我的问题是:我如何重新编译 mod-wsgi 以便它针对来自 anaconda 的 2.7.9 环境进行 linked? 另一个问题是,我可以保持原样,只向 link 添加一些指令到 anaconda 库吗?那应该是哪个文件夹,然后我应该把 WSGIPythonHome 指令放在哪里?

感谢观看

有类似问题,答案在虚拟主机文件中:

WSGIDaemonProcess mysite python-path=/path/to/mysite:/path/to/anaconda3/envs/python2/lib/python2.7/site-packages/
WSGIProcessGroup mysite
WSGIScriptAlias / /path/to/mysite/mysite/wsgi.py

ServerName www.mysite.com
ServerAlias mysite.com
ServerAdmin webmaster@mysite.com

<Directory /path/to/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

ErrorLog /path/to/web/test/error.log

在 Apache 的 httpd.conf 中检查此设置:
在你的 <VirtualHost x:y> 部分,确保 python-pathWSGIDaemonProcess 中的值包括 你的 Anaconda 安装中的 Python site-packages 目录.
否则,mod_wsgi 可能无法在 Anaconda.

中找到您为 Python 安装的 Django

例如,如果您将 Anaconda 安装到: /opt/anaconda2
Python 站点包目录可能是: /opt/anaconda2/lib/python2.7/site-packages
因此,将 WSGIDaemonProcess 更改为:
WSGIDaemonProcess YOUR_PROJECT_NAME python-path=/opt/anaconda2/lib/python2.7/site-packages:YOUR_PROJECT_DIRECTORY ......
(每条路径用冒号隔开:)

注:
1. 路径中的版本号可能会根据您的工具版本而变化。请找到类似的路径并尝试。
2. 这个问题可能发生在每个 Linux 发行版上(不仅是 Ubuntu),甚至 Windows。