2017-07-10 8 views
0

Ich habe eine sehr einfache Django-App, die ich auf Heroku bereitstellen möchte, aber es stürzt immer weiter ab. Alles funktioniert gut auf meinem lokalen Rechner, aber nicht auf HerokuModuleNotFoundError: Kein Modul namens 'models'

hier ist der Fehler Ich erhalte (Schnitt auf die relevanten Teile):

File "/app/hello/admin.py", line 4, in <module> 
2017-07-10T20:12:27.482194+00:00 app[web.1]:  import models 
2017-07-10T20:12:27.482195+00:00 app[web.1]: ModuleNotFoundError: No module 
named 'models' 

Ich bin mit der Standard-Django Verzeichnisstruktur:

-python-getting-started

--hello

--- init Py

---admin.py (dies ist, wo der Fehler ist)

---models.py (dies ist die Datei, die ich zu importieren bin versucht)

---tests.py

---views.py

Es funktioniert auf meinem lokalen Rechner nur in Ordnung. Importiere ich es falsch? Ich weiß ehrlich gesagt nicht einmal, wo ich damit anfangen soll. Ich habe keine Probleme mit meinen anderen Django-Projekten, die auf Heroku gehostet werden, nur diese hier.

hier ist der relevante Teil der admin.py, der den Fehler zu werfen:

from django.contrib import admin 
from django import forms 

import models 

# Register your models here. 
class BasicInfoCollectionForm(forms.ModelForm): 
    class Meta(): 
     model = models.VolunteerBasicInfo 
     fields = ('removed for brevity') 

Jede Hilfe sehr

bearbeiten würde geschätzt: Ich habe erkannt, dass diese App Python v3 verwendet. 6 auf Heroku, während ich Dev mit Python 2.7 auf meinem lokalen Rechner gemacht habe.

Antwort

2

Sie benötigen

from . import models 

relativ Import zu verwenden oder es ist besser, Modelle zu importieren, dass Sie Benutzer, da sie nicht visuell mit django.db.models kollidieren.

from django import forms 

from .models import VolunteerBasicInfo 

class BasicInfoCollectionForm(forms.ModelForm): 
    class Meta: 
     model = VolunteerBasicInfo 
     ... 

Sie benötigen auch keine Benutzerklammern mit class Meta.

+0

Ich würde absolute Importe empfehlen, da py3 relative los ist. – Adam

+0

Ja, das hat das Problem gelöst. Es stellt sich heraus, dass Heroku die Standardversion ihrer Django-App in Python 3 geändert hat und ich für dieses Projekt nicht bemerkt habe. Vielen Dank! – user1626536

+0

@Adam Python 3 wird relative Importe entfernen, können Sie mir bitte einen Link des Beweises geben? –

Verwandte Themen