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-path
在 WSGIDaemonProcess
中的值包括 你的 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。
我在 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-path
在 WSGIDaemonProcess
中的值包括 你的 Anaconda 安装中的 Python site-packages 目录.
否则,mod_wsgi 可能无法在 Anaconda.
例如,如果您将 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。