2016-04-06 25 views
1

Benim için herhangi bir django "Merhaba Dünya" örneğini açabilmem mümkün değil. Sadece urls.py, views.py ve wsgi.py tabanlı en temel örneği yapmaya çalışıyorum. Bu (bazı denemeler görebilirsiniz # ile) ithalat görünümleri olan yapıdjango openshift İçe Aktarma sayısı error

wsgi 
-myproject 
--myproject 
---__init__.py 
---settings.py 
---urls.py 
---views.py 
---wsgi.py 

ve urls.py olduğu

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

şey dışarı alınamıyor olmasıdır "ImportError - ad görünümlerini içe aktaramaz" durumu. Bir sürü stackoverflow parçacığı okudum, birçok cevap denedim ama hiçbir şey. İçe aktarma isteğiniz, views.py içeriğini urls.py dosyasına kopyalarsam tamam çalışıyor. İşte

wsgi.py içerik, bir çözüm bulmaya çalışan eklendi sys.path.append dolu:

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 

Ben openshift web konsolu içine bu projeyi oluşturduk ve liclipse ile modifiye (eclipse pydev). Bu şey openshift ile ilgili, bazı yerel örnekler yaptım ve hiç sorun değil.

LÜTFEN YARDIM - Açılışın en azından yeni başlayanlar için django ile çalışmadığını düşünmeye başladım. Teşekkür

cevap

1

görüşleriniz URL'ler aynı Dir olduğundan göreceli bir ithalat kullanmayı deneyin:

from . import views 

Ve belki mutlak/akraba ithalatı nasıl kullanılacağı konusunda piton docs okuyun: https://docs.python.org/2.5/whatsnew/pep-328.html

+0

Teşekkür, ama bu yaptığım ilk şey. Bu satırı # urls.py adresimde görebilirsiniz. Bence basit ama gerçekten işe yarayan bir örneğe ihtiyacım var. –

+0

oh o zaman yardımcı olmadı üzgünüm. Başka bir seçenek, bir dizeye koymak ve bu gibi görünümleri içe aktarmamaktır: github'daki openshift örneği: https://github.com/openshift/django-ex/blob/master/project/urls.py – fips

+0

Evet, teşekkürler , bu çalışıyor. Ayrıca, views.py içeriğini urls.py dosyasına kopyaladığımda da çalışır. Ama bu şekilde fazla ileri gitmeyeceğim, işe temel bir ithalat yapmak istiyorum, aksi halde asla bir projeye bakış açıları kullanamayacağım. –