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

Django应用中无法访问flights模型:存在flights应用却报模块未找到错误

解决Django Shell中找不到'flights'模块的问题

嘿,我之前也碰到过一模一样的问题,别慌,咱们一步步排查原因,搞定它!

为啥会出现这个错误?

  • 应用没在Django里注册:Django只会认那些在settings.py的INSTALLED_APPS里登记过的应用,没登记的话,它根本不知道有个叫flights的模块存在。
  • 启动Shell的位置不对:你是不是在项目子目录里启动的shell?比如跑到了flights目录或者项目配置目录里?不在根目录(就是有manage.py的那个文件夹)启动的话,Python找不到你的应用路径。
  • 应用目录有问题:要么flights文件夹里少了__init__.py文件(虽然新版本Django自动识别,但旧版本可能需要),要么你把应用名字拼错了(比如实际叫flight你写成flights,Python大小写敏感哦)。

一步步解决问题:

1. 先确认应用已经注册到INSTALLED_APPS

打开项目根目录下的settings.py,找到INSTALLED_APPS这个列表,看看里面有没有'flights'。规范点的话,也可以写'flights.apps.FlightsConfig'(就是flights/apps.py里的类名)。比如:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 把你的应用加在这里
    'flights',
]

改完保存,重新启动shell试试导入。

2. 确保在正确的目录启动Shell

打开终端,切换到有manage.py的那个项目根目录,然后再执行:

python manage.py shell

这时候再输入from flights.models import *,应该就能找到了。

3. 检查应用的目录结构

你的flights应用目录得是这个样子的:

你的项目根目录/
├── manage.py
├── 项目配置目录/  # 比如和项目同名的文件夹,里面有settings.py
│   └── ...
└── flights/
    ├── __init__.py  # 这个文件不能少(旧版本Django必须)
    ├── admin.py
    ├── apps.py
    ├── models.py
    └── ...

如果缺了__init__.py,新建一个空文件就行;要是名字拼错了,赶紧改成正确的(比如把Flight改成flights,注意小写)。

4. 终极排查:检查Python路径(可选)

如果上面的方法都没用,那咱们看看Python的搜索路径里有没有你的项目。在shell里输入:

import sys
print(sys.path)

看看你的项目根目录或者flights所在的目录在不在列表里。如果不在,临时加一下:

import sys
sys.path.append('/你的项目根目录的绝对路径')

不过这只是临时解决,最好还是通过前面的步骤从根本上搞定,不然下次启动shell又得重新加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:03:19