我启动了一个Django 1.7 OpenShift实例。当我从sys.path
开始python打印所有路径时,我看不到OPENSHIFT_REPO_DIR
(/var/lib/openshift/xxxxx/app-root/runtime/repo
)。
当我使用https://github.com/jfmatth/openshift-django17
创建项目时,我确实在路径中看到OPENSHIFT_REPO_DIR
。
通过上面的示例应用程序,我看不到任何地方特意添加到路径中。我错过了什么?
澄清: 我必须将以下内容添加到我的wsgi.py:
import os
import sys
ON_PASS = 'OPENSHIFT_REPO_DIR' in os.environ
if ON_PASS:
x = os.path.abspath(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'mysite'))
sys.path.insert(1, x)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
OPENSHIFT_REPO_DIR不在我的路上,正如我所料。当我使用上面的示例git时,我不必在路径中添加任何内容。
答案 0 :(得分:1)
一段时间后,我遇到了一些预配置的OpenShift环境变量的问题,直到我重新启动应用程序才出现。
为了它的价值,我启动了一个全新的Django设备,将环境变量打印到应用程序日志,并验证我确实看到了OPENSHIFT_REPO_DIR(以及所有其他环境变量)。
答案 1 :(得分:0)
此问题似乎是由于尝试使用django在使用startproject时产生的标准文件结构布局引起的。 Openshift似乎需要更平坦的文件结构。一旦我将wsgi移动到一个神秘的兄弟,它就解决了这个问题。