我有以下项目树 -
以下是我的错误日志:Error Log
执行命令时出现错误 - python manage.py syncdb
models_py for user_profile:user_profile>models.py
models.py for tweets:tweets>models.py
答案 0 :(得分:1)
这是因为您尝试从UserM
模块导入user_profile
而不是user_profile.models
。您可以将所有内容导入user_profile
模块__init__.py
,如下所示:
# add this to user_profile/__init__.py
from .models import *
或使用import语句如下:
from user_profile.models import UserM
<强>解释强>
user_profile是一个目录,python docs建议:
需要 init .py文件才能使Python将目录视为包含包;这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块。在最简单的情况下, init .py可以只是一个空文件,但它也可以执行包的初始化代码或设置 all 变量,稍后将对此进行描述。 p>
所以user_profile
是一个目录而不是一个模块。通过向其添加__init__.py
文件,您可以让python知道这是一个包含的包。但是在from user_profile import UserM
中你没有指定包含UserM
类的模块,因此python将在包含的包__init__.py
中查找它。
使用上面建议的解决方案,您可以将UserM
类导入__init__.py
文件,其中python根据from user_profile import ..
语句查找它,或者您更改import语句并指定包含您的类的模块,将其修改为from user_profiles.modesl import UserM
。