【发布时间】:2016-03-24 21:56:58
【问题描述】:
我在 ubuntu 15.10 上安装了 Django 和 mod_wsgi-express。基本上(请注意,我没有以 root 身份执行此操作):
pip install Django
pip install mod_wsgi
接下来我做了:
~/.local/bin $ ./mod_wsgi-express start-server ~/mysite/mysite/wsgi.py
其中:~/mysite/mysite/wsgi.py 来自我上传到服务器上上述目的地的sample project。但是当我尝试访问该网站时出现错误(内部服务器错误)。当我查看日志时,我看到:
[Thu Mar 24 22:26:24.638043 2016] [wsgi:error] [pid 19469:tid 139785018738560] mod = importlib.import_module(self.SETTINGS_MODULE)
[Thu Mar 24 22:26:24.638070 2016] [wsgi:error] [pid 19469:tid 139785018738560] File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
[Thu Mar 24 22:26:24.781030 2016] [wsgi:error] [pid 19469:tid 139785018738560] __import__(name)
[Thu Mar 24 22:26:24.781148 2016] [wsgi:error] [pid 19469:tid 139785018738560] ImportError: No module named mysite.settings
[Thu Mar 24 22:26:27.590300 2016] [wsgi:error] [pid 19469:tid 139784895194880] [remote 92.243.236.53:24636] mod_wsgi (pid=19469): Target WSGI script '/tmp/mod_wsgi-localhost:8000:1000/handler.wsgi' cannot be loaded as Python module.
因此,似乎 mysite.settings 找不到/不在 Python PATH 上(文件 ~/mysite/mysite/settings.py 确实存在)。
基于: https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/
我尝试添加:
os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
但这并没有帮助。我还尝试将示例项目的上述路径添加到基于以下内容的python路径: https://code.djangoproject.com/wiki/PythonPath
但同样的错误。我错过了什么?
编辑/解决方案:
问题出在包含路径中:
import sys
#Wrong!
#sys.path.append("/home/user/mysite/mysite")
#Correct
sys.path.append("/home/user/mysite")
【问题讨论】:
-
~/mysite需要在您的 Python 路径中。试试PYTHONPATH=~/mysite ./mod_wsgi-express start-server ~/mysite/mysite/wsgi.py