我已阅读过类似的问题/答案,但我无法解决这种情况。所以我安装了WSGI,并想从Apache服务我的django应用程序。apache wsgi django路径问题挫折
我最开始做的是用virtualenv创建包含python相关内容的文件夹测试。所以,我没有
virtualenv environment
我的虚拟主机文件看起来像:
<VirtualHost *:8001>
WSGIDaemonProcess myapp python-path=/var/www/vhosts/myapp.com/:/var/www/vhosts/myapp.com/environment/lib/python2.7/:/var/www/vhosts/myapp.com/environment/lib/python2.7/sites-available
WSGIScriptAlias//var/www/vhosts/myapp/testing/wsgi.py
...
...
我wsgi.py是:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testing.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
一旦访问我得到一个服务器内部错误和错误网页.log说基本上有2条错误信息:
[wsgi:error] [pid 31165] [client 192.168.0.3:31337] mod_wsgi (pid 31165): Target WSGI script '/var/www/vhosts/myapp.com/testing/wsgi.py' cannot be loaded as Python Module
,并在之后几行文字,结束于:
[wsgi:error] [pid 31165] [client 192.168.0.3:31337] mod_wsgi (pid 31165): ImportError: Could not import settings 'testing.settings' (is it on sys.path? Is there an import error in the settings file?)
我就发现的第一个错误味精这个Target WSGI script cannot be loaded as Python module但是我想不出解决问题。我得到的是,这个错误并没有阻止Apache尝试加载我的python(django)项目,因为下一个错误是我认为会导致500响应的原因。对于第二个错误,我发现这是添加路径(我已经做了我的vhost文件!)
我试过其他的解决方案,例如在我的apache.conf中添加WSGIPythonPath,但没有奏效。
我wsgi.py文件如下:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testing.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
我也尝试添加
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
sys.path.append('/var/www/vhosts/myapp/testing')
import mysite.settings
没有工作。
做,如果你在目录中执行'蟒蛇wsgi.py'你收到任何错误讯息* /无功/网络/虚拟主机/ MYAPP /测试/ * ? –
是的。我遇到了与导入错误相同的错误。它肯定是一个路径问题,但我不明白我在做什么错误。:( – user3124171
如果你有* wsgi.py *(带'sys.path.append等)的更新版本,它可能会更好 –