创建一个新的Django项目与/tmp$ django startproject testsite
为什么apache2(2.2)没有加载django(1.6.1)?
配置的Apache2运行在/tmp/testsite/testsite/wsgi.py
有一个简单的线条import django
的wsgi.py中的应用程序(这是一切的时刻,因为我试图调试)。
我做配置httpd.conf中运行WSGI文件,(我认为)的作品,因为日志100克这样的:
Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] mod_wsgi (pid=12621): Target WSGI script '/tmp/testsite/testsite/wsgi.py' cannot be loaded as Python module.
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] mod_wsgi (pid=12621): Exception occurred processing WSGI script '/tmp/testsite/testsite/wsgi.py'.
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] File "/tmp/testsite/testsite/wsgi.py", line 26, in <module>
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] import django
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] ImportError: No module named django
然后我检查,如果我对SYS所需要的库。路径,具有打印 - 这表明,在运行import
声明来看,sys.path中是确定的(更详细地说,我在sys.path中有/...../sistem-packages
而且看着this链接,并尝试了chmod a+x wsgi.py
,但仍然出现同样的错误。
仅供参考,这里有我的文件:
的httpd.conf
WSGIScriptAlias /vwh /tmp/testsite/testsite/wsgi.py
WSGIPythonPath /tmp/testsite:/home/local/smth/user/ve/tmp1/lib/python2.7/site-packages
<Directory /tmp/testsite/testsite>
<Files wsgi.py>
Order deny,allow
#Require all granted
Allow from all
</Files>
</Directory>
wsgi.py
import os
import sys
from subprocess import call
#print call(["which", "python"]) #also this gives a VERY weird result... prints `0`
import django
此外,试图打印subprocess.call的输出([ '它' ,'python'])但是那有最奇怪的结果 - 返回0
,我不知道如何解释它
[编辑]我什么是安装在路径的virtualenv /home/local/smth/user/ve/tmp1
[编辑]是 - 我可以从一个解释器,进口Django的时候指定的路径是在sys.path
,并django.__file__
回报/home/local/smth/user/ve/tmp1/local/lib/python2.7/site-packages/django/__init__.pyc
在'subprocess.call'上 - 这就是它返回的结果。你的进程的返回代码(如果进程成功返回,通常为0)。如果您希望它从该进程输出stdout,则必须执行其他步骤。 无论如何,显而易见的问题,但实际安装在'/ home/local/smth/user/ve/tmp1/lib/python2.7/site-packages'中的完整'django'包?此外你的mod_wsgi版本可能是相关的。 – Iguananaut
在您的虚拟环境中,“导入django”是否在Python shell中工作?如果是这样,'django .__ file__'中有什么? – lanzz
@Iguananaut编辑了答案。导入django在控制台中工作。 –