2017-07-10 66 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将删除相关的进口,请问您能给我一个证明链接吗? –

相关问题