2016-04-06 13 views
1

Es war unmöglich für mich, irgendein django "Hello World" Beispiel auf openshift zu machen. Ich versuche nur, das grundlegendste Beispiel basierend auf urls.py, anses.py und wsgi.py zu erstellen. Das ist die Strukturdjango openshift import views fehler

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

und urls.py, wo die Import Ansichten ist (mit # einige Studien sehen)

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

Die Sache ist, dass ich nicht aus dem bekommen können "ImportError - kann Namensansichten nicht importieren" Situation. Ich habe viele Stackoverflow-Threads gelesen, viele Antworten versucht, aber nichts. Wenn ich den Inhalt von ansichten.py in urls.py kopiere, funktioniert das nicht.

Hier ist der wsgi.py Inhalt, voller sys.path.append, dass ich eine Lösung zu finden versuchen, hinzugefügt:

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 

ich dieses Projekt in die Openshift Web-Konsole erstellt und modifiziert sie mit liclipse (Eklipse Pydev). Das Ding hat mit OpenShift zu tun, ich habe einige lokale Beispiele gemacht und überhaupt kein Problem.

BITTE HILFE - Ich fange langsam an zu denken, dass OpenShift nicht mit Django funktioniert, zumindest für Anfänger. Dank

Antwort

1

Versuchen Sie, einen relativ Import verwenden, da Ihre Ansichten in dem gleichen Verzeichnis wie Urls ist:

from . import views 

Und vielleicht die Python-Dokumentation lesen, wie absolute/relative Importe verwenden: https://docs.python.org/2.5/whatsnew/pep-328.html

+0

Danke, aber das ist das erste, was ich getan habe. Du kannst diese Zeile mit # in meiner urls.py sehen. Ich denke, ich brauche ein einfaches, aber wirklich funktionierendes Beispiel. –

+0

oh entschuldigung das war dann nicht hilfreich. eine andere Möglichkeit ist es, es in eine Zeichenkette zu setzen und keine Ansichten wie diese zu importieren: openshift Beispiel auf github: https://github.com/openshift/django-ex/blob/master/project/urls.py – fips

+0

Ja, danke , das funktioniert. Und das funktioniert auch, wenn ich den Inhalt von views.py einfach in urls.py kopiere. Aber ich werde auf diesem Weg nicht zu weit gehen, ich möchte Arbeit zu einem grundlegenden Import machen, sonst werde ich nie in der Lage sein, Ansichten in ein Projekt zu verwenden. –

Verwandte Themen