2017-07-10 93 views
0

我有一個非常簡單的django應用程序,我試圖部署到heroku,但它不斷崩潰。一切正常,我的本地機器上,而不是在HerokuModuleNotFoundError:沒有名爲'models'的模塊

這裏是我得到的錯誤(切開去相關部分):

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' 

我使用的是默認的Django的目錄結構:

-python-工具入門

- 你好

--- 初始化的.py

---admin.py(這是錯誤的)

---models.py(這是我想要導入的文件)

---tests.py

---views.py

它在我的本地機器上工作得很好。我輸入錯了嗎?我真的不知道從哪裏開始。我在Heroku上託管的其他Django項目中沒有任何問題,就是這個。

這裏是引發錯誤admin.py的相關部分:

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') 

任何幫助,將不勝感激

編輯: 我剛剛意識到這個程序是使用python V3。 6在heroku上,而我一直在用本地機器上的python 2.7進行開發。

回答

2

您需要使用相對進口

from . import models 

,或者它更好地導入模型,你將用戶,因爲它不會在視覺上與django.db.models碰撞。

from django import forms 

from .models import VolunteerBasicInfo 

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

您也不需要用戶括號class Meta

+0

我會建議絕對進口,因爲py3會擺脫親屬關係。 – Adam

+0

是的,這解決了這個問題。事實證明,heroku將他們的django應用程序的默認版本更改爲python 3,我沒有注意到這個項目。謝謝! – user1626536

+0

@Adam Python 3將刪除相關的進口,請問您能給我一個證明鏈接嗎? –

相關問題