web-dev-qa-db-ja.com

ModuleNotFoundError: 'models'という名前のモジュールはありません

私は非常に単純なDjangoアプリをherokuにデプロイしようとしていますが、クラッシュし続けます。ローカルマシンではすべて正常に動作しますが、herokuでは動作しません

ここに私が得ているエラーがあります(関連する部分にカットされています):

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-getting-started

- こんにちは

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

どんな助けでも大歓迎です

編集:私はこのアプリがherokuでpython v3.6を使用していることを認識しましたが、ローカルマシンでpython 2.7でdevを実行しています。

5
user1626536

相対インポートを使用する必要があります

from . import models

または、視覚的にDjango.db.modelsと衝突しないため、使用するモデルをインポートすることをお勧めします。

from Django import forms

from .models import VolunteerBasicInfo

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

また、class Metaで角かっこを使用する必要はありません。

9
vishes_shell