没有名为“polls.apps.PollsConfigdjango”的模块;Django项目教程2
- 2025-03-21 09:06:00
- admin 原创
- 30
问题描述:
因此,我一直按照此处的教程步骤https://docs.djangoproject.com/en/1.9/intro/tutorial02/进行操作,然后到了应该运行以下命令的步骤:
python manage.py makemigrations polls
当我运行它时,出现此错误:
python manage.py makemigrations polls
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in_find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 327, in execute
django.setup()
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/importlib/__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_an``d_load
File "<frozen importlib._bootstrap>", line 2221, in _find_and_load_unlocked
ImportError: No module named 'polls.apps.PollsConfigdjango'; 'polls.apps' is not a package
这是我的模型:
from django.db import models
# Create your models here.
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
解决方案 1:
第一个问题是回溯中的这个警告:
No module named 'polls.apps.PollsConfigdjango'
'polls.apps.PollsConfig
这意味着您的设置后面缺少一个逗号INSTALLED_APPS
。应该是:
INSTALLED_APPS = (
...
'polls.apps.PollsConfig',
'django....',
...
)
第二个问题是警告'polls.apps' is not a package
。这表明您已经安装了 Django 1.8,但您正在遵循 Django 1.9 教程。
如果您使用的是 Django 1.8,请按照 1.8 教程操作,这样您就不会遇到这样的问题。Django 1.8 教程中介绍了INSTALLED_APPS
如何将投票应用程序添加到。请注意,它不使用。PollsConfig
INSTALLED_APPS = (
...
'polls',
)
解决方案 2:
ImportError: No module named 'polls.apps.PollsConfigdjango'
您忘记在列表中添加“,”
解决方案 3:
检查 'polls.apps.PollsConfigdjango' 后的逗号“,”
解决方案 4:
您刚才漏掉了 后面的一个逗号'polls.apps.PollsConfig'
。
别担心,即使是最好的我们也会发生这种事!
解决方案 5:
任何收到 ModuleNotFoundError: No module named 'pollsdjango' 的人
和 INSTALLED_APPS :
INSTALLED_APPS = [
'polls.apps.PollsConfig'
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
解决方案:
您忘记在 'polls.apps.PollsConfig' 行末尾添加逗号 (,)
INSTALLED_APPS = [
'polls.apps.PollsConfig', <----this comma
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
解决方案 6:
引自https://code.djangoproject.com/ticket/27139
描述
在教程 02 编写你的第一个 Django 应用程序(第 2 部分)中输入
INSTALLED_APPS = [
'polls.apps.PollsConfig',
....
将导致 ImportError:没有名为“polls.apps.PollsConfig”的模块;“polls.apps”不是一个包
解决这个问题的方法是
INSTALLED_APPS = [
'polls',
....
解决方案 7:
我收到了类似的错误:ImportError:没有名为“polls”的模块
原因是我将应用程序存储在“apps”目录中。解决方案是更改 apps.py 中的代码
从:
class PollsConfig(AppConfig):
name = 'polls'
到(“apps”是我的 django apps 目录的名称):
class PollsConfig(AppConfig):
name = 'apps.polls'
解决方案 8:
你忘记在 'polls.apps.PollsConfig' 后添加 "," "," 必须包含逗号 "," ... 'polls.apps.PollsConfig',
解决方案 9:
如果你来自Django Tut,那么问题来了,你刚刚在'polls.apps.PollsConfig'后面漏了一个逗号。所以应该是
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
....
]
解决方案 10:
__init__.py
如果以上/以下方法均无法解决您的问题,并且您遇到相同的错误,请确保您的顶级目录中没有。希望这对某些人有所帮助!
解决方案 11:
如果我们收到有关错误的信息,not a package
那么大多数情况下,可能是我们忘记__init__.py
在收到此错误的目录中添加文件。
扫码咨询,免费领取项目管理大礼包!