django openshift导入视图错误

时间:2016-04-06 01:03:12

标签: django import openshift

我无法在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,至少对于初学者来说。 感谢

1 个答案:

答案 0 :(得分:1)

尝试使用相对导入,因为您的视图与网址在同一个目录中:

from . import views

也许可以阅读关于如何使用绝对/相对导入的python文档:https://docs.python.org/2.5/whatsnew/pep-328.html