2016-04-06 2 views
1

Невозможно для меня сделать какой-либо django пример «Hello World» в openshift. Я просто пытаюсь сделать самый простой пример, основанный на urls.py, views.py и wsgi.py. Это структураdjango openshift import views error

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)), 
] 

Дело в том, что я не могу выйти из «ИмпортError - не может импортировать виды имен». Я прочитал много потоков 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 и модифицированном его liclipse (eclipse pydev). Вещь связана с openshift, я сделал несколько местных примеров и никаких проблем вообще.

ПОЖАЛУЙСТА, ПОМОГАЙТЕ - Я действительно начинаю думать, что сперва не работает с джанго, по крайней мере для начинающих. Благодаря

ответ

1

Попробуйте использовать относительный импорт, так как ваши взгляды в той же директории, как URLs:

from . import views 

А может быть, читать питон документы о том, как использовать абсолютный/относительный импорт: https://docs.python.org/2.5/whatsnew/pep-328.html

+0

Спасибо, но это первое, что я сделал. Вы можете увидеть эту строку с помощью # в моем urls.py. Я думаю, мне нужен простой, но действительно рабочий пример. –

+0

о, жаль, что тогда это не помогло. другой вариант заключается в том, чтобы поместить его в строку и не импортировать такие виды: showhift example на github: https://github.com/openshift/django-ex/blob/master/project/urls.py – fips

+0

Да, спасибо , это работает. А также работает, если я просто скопирую содержимое views.py в urls.py. Но я не буду заходить слишком далеко, я хотел бы сделать работу основным импортом, иначе я никогда не смогу использовать представления в проекте. –