我在ubuntu 15.10上安装了Django和mod_wsgi-express.基本上,(注意我并没有这样做,因为根):
pip install Django
pip install mod_wsgi
Run Code Online (Sandbox Code Playgroud)
接下来我做了:
~/.local/bin $ ./mod_wsgi-express start-server ~/mysite/mysite/wsgi.py
Run Code Online (Sandbox Code Playgroud)
其中:~/mysite/mysite/wsgi.py来自我上传到服务器上述目标的示例项目.但是当我尝试访问网站时出现错误(内部服务器错误).当我查看日志时,我看到:
[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.
Run Code Online (Sandbox Code Playgroud)
所以似乎无法找到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"
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.我还尝试将以上路径添加到示例项目到python路径:https: //code.djangoproject.com/wiki/PythonPath
但同样的错误.我错过了什么?
编辑/解决方案:
问题出在包含路径中:
import sys
#Wrong!
#sys.path.append("/home/user/mysite/mysite")
#Correct
sys.path.append("/home/user/mysite")
Run Code Online (Sandbox Code Playgroud)
nor*_*ght 18
将其添加到您的wsgi.py文件中
path = '/home/path/to/project'
if path not in sys.path:
sys.path.append(path)
Run Code Online (Sandbox Code Playgroud)
在设定之前
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
Run Code Online (Sandbox Code Playgroud)
小智 11
请试试:
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'YOURAPP.settings'
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "YOURAPP.settings")
Run Code Online (Sandbox Code Playgroud)
这适用于主项目目录中的脚本,以及...
问题出在包含路径中:
import sys
#Wrong!
#sys.path.append("/home/user/mysite/mysite")
#Correct
sys.path.append("/home/user/mysite")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38235 次 |
| 最近记录: |