好的抱歉,我知道这个问题与另一个问题相似,但是当我尝试其他答案时似乎对我没有用。 Apache2.2:ImportError: No module named site。所以我想让django / virtualenv / apache一起工作。非常感谢任何帮助!!
以下是错误日志。
这是我的apache conf文件
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName tracker.com
<Directory /var/www/html/drish/drish>
<Files wsgi.py>
Require all granted
</Files>
order allow,deny
allow from all
</Directory>
WSGIDaemonProcess project python-path=/var/www/html/drish/:python-home=/var/www/html/virtenv
WSGIScriptAlias / /var/www/html/drish/drish/wsgi.py
Alias /static /var/www/html/drish/drish
</VirtualHost>
我没有更改wsgi.conf
文件中的任何内容,我所做的就是启用它。虽然我确实在那里看到了一些选项,但不确定他们做了什么。
这是由django创建的WSGI.py文件,我也没有改变任何内容。
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "drish.settings")
application = get_wsgi_application()
再次感谢您的帮助。
答案 0 :(得分:2)
从您的错误日志中,似乎存在一些潜在的问题,包括它无法导入drish.settings
,以及它在您的虚拟环境中没有使用Python二进制文件这一事实。我认为你需要首先解决后一个问题,然后才弄清楚为什么drish.settings
不会导入,所以让我们验证一些事情。
首先,您确定WSGIDaemonMode
指令中的语法吗?对于python-path
值,文档看起来与上面的文档略有不同。这是their example from the docs:
WSGIDaemonProcess example.com python-path=/path/to/mysite.com:/path/to/venv/lib/python2.7/site-packages
WSGIProcessGroup example.com
以下是我认为你应该看起来的样子:
WSGIDaemonProcess project python-path=/var/www/html/drish/:/var/www/html/virtenv/lib/python2.7/site-packages
WSGIProcessGroup project
显然,您需要验证/var/www/html/virtenv/lib/python2.7/site-packages
目录确实存在,我正在对该特定位置做出有根据的猜测。
这完全有可能解决这两个问题,但我并不是100%肯定。无论哪种方式,尝试一下,让我们知道你是如何进行的。理想情况下,您至少会开始看到它在您的虚拟环境中使用python二进制文件,而不是系统文件。