You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行python manage.py migrate报错:找不到'muypicky.base'模块

解决Django migrate时出现的ModuleNotFoundError: No module named 'muypicky.base'

问题背景

我正在Udemy平台学习《try-django-v1-11-python-web-development》Django入门课程,在Mac的虚拟环境中执行python manage.py migrate命令时触发了以下异常:

(trydjango1-11) C02T74CKGTF1:src josh.frazier$ python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/josh.frazier/Dev/trydjango1-11/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/Users/josh.frazier/Dev/trydjango1-11/lib/python3.6/site-packages/django/core/management/__init__.py", line 307, in execute
    settings.INSTALLED_APPS
  File "/Users/josh.frazier/Dev/trydjango1-11/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/Users/josh.frazier/Dev/trydjango1-11/lib/python3.6/site-packages/django/conf/__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "/Users/josh.frazier/Dev/trydjango1-11/lib/python3.6/site-packages/django/conf/__init__.py", line 110, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/Users/josh.frazier/Dev/trydjango1-11/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/josh.frazier/Dev/trydjango1-11/src/muypicky/__init__.py", line 1, in <module>
    from .base import *
ModuleNotFoundError: No module named 'muypicky.base'

问题分析

从报错信息能直接看出,Django加载muypicky/__init__.py时,尝试执行from .base import *,但找不到muypicky.base模块——核心原因要么是你的muypicky应用目录下缺少base.py文件,要么是文件路径/命名存在问题。

解决方案

按照课程学习的逻辑,你可以按以下步骤排查解决:

  • 确认文件结构是否正确
    先检查你的项目目录结构,应该符合下面的格式:

    trydjango1-11/
      src/
        muypicky/
          __init__.py
          base.py  # 这个文件必须存在!
          settings.py
          urls.py
          wsgi.py
        manage.py
    

    如果base.py不存在,大概率是你漏做了课程中拆分配置文件的步骤(比如把settings.py里的通用配置转移到base.py),需要补创建这个文件并填充对应内容。

  • 验证导入路径和文件命名
    如果base.py确实存在,先手动测试导入是否正常:

    # 进入src目录,启动Python交互环境
    (trydjango1-11) C02T74CKGTF1:src josh.frazier$ python
    >>> from muypicky.base import *
    

    如果这步报错,检查文件名是否拼写错误(比如写成Base.py,Python文件名区分大小写);如果能成功导入,就去检查manage.py里的DJANGO_SETTINGS_MODULE是否正确设置为muypicky.settings。

  • 回溯课程步骤
    因为是跟着Udemy课程学习,很可能是你跳过了创建base.py的环节。回去查看课程内容,确认是否有将settings.py的基础配置拆分到base.py的操作,比如把DEBUG、SECRET_KEY、INSTALLED_APPS等配置移到base.py,再在settings.py中导入这些内容。

内容的提问来源于stack exchange,提问作者Josh Frazier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:10:26