【发布时间】:2016-04-06 09:40:21
【问题描述】:
我无法在 openshift 上制作任何 django“Hello World”示例。我只是想做一个基于urls.py、views.py和wsgi.py的最基本的例子。 这是结构
wsgi
-myproject
--myproject
---__init__.py
---settings.py
---urls.py
---views.py
---wsgi.py
还有urls.py,导入视图在哪里(带#可以看到一些试验)
from django.conf.urls import include, url
from django.contrib import admin
#from . import views
#import views
from myproject import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^admin/', include(admin.site.urls)),
]
问题是我无法摆脱“ImportError - 无法导入名称视图”的情况。我已经阅读了很多 stackoverflow 线程,尝试了很多答案,但一无所获。 如果我将views.py内容复制到urls.py中,而不是导入,它可以正常工作。
这里是 wsgi.py 内容,充满了我添加的 sys.path.append 以试图找到解决方案:
import os, sys
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR']))
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi'))
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'myproject'))
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'myproject'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/'
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python3.3/site-packages')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass
我在 openshift web 控制台中创建了这个项目,并使用 liclipse (eclipse pydev) 对其进行了修改。 和openshift有关的事情,我做了一些本地的例子,完全没有问题。
请帮助 - 我真的开始认为 openshift 不适用于 django,至少对于初学者来说是这样。 谢谢
【问题讨论】: