已安装Django却提示No module named 'django'的解决求助
在外部脚本中使用Django模型的报错解决
问题背景
尝试在独立Python脚本script.py中调用Django模型,脚本代码、文件夹结构及运行报错如下:
脚本代码
from os import environ environ['DJANGO_SETTINGS_MODULE'] = 'settings' import sys sys.path.append("C:/.../djangoproject/djangoproject") from settings import * sys.path.append("C:/.../djangoproject/myapp") from models import video vid = video(video_title='a title') vid.save()
文件夹结构
djangoproject ├── script.py ├── djangoproject/ │ ├── settings.py │ └── 其他配置文件 └── myapp/ ├── models.py └── 其他应用文件
报错信息
Traceback (most recent call last): File "C:\...\djangoproject\script.py", line 11, in <module> from models import video File "C:\...\djangoproject/myapp\models.py", line 1, in <module> from django.db import models ModuleNotFoundError: No module named 'django'
补充说明:已安装Django,仅使用Python 3,未使用虚拟环境。
解决方法
1. 确认Python环境与Django安装状态
- 打开命令行,执行
python --version,确认当前运行脚本的Python版本,和安装Django时使用的版本一致。 - 执行
pip list,查看输出列表中是否有Django。如果没有,执行pip3 install django(确保用pip3匹配Python 3环境)。
2. 正确初始化Django环境
你的脚本缺少Django框架的初始化步骤,导致无法加载Django模块。修改脚本如下:
import os import sys # 添加项目根目录到Python搜索路径 sys.path.append("C:/.../djangoproject") # 设置Django配置模块(注意是项目名.配置文件名) os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoproject.settings') # 初始化Django import django django.setup() # 按Django规范导入模型 from myapp.models import Video # 创建并保存模型实例 vid = Video(video_title='a title') vid.save()
3. 修正导入逻辑与命名规范
- 不要单独将
myapp添加到sys.path,而是添加项目根目录,这样可以通过myapp.models的方式正确导入模型,符合Django的包结构要求。 - 遵循Django命名规范,模型类名使用大驼峰格式(如
Video而非video),避免命名冲突。
内容的提问来源于stack exchange,提问作者El Mehdi Daoudi
相关产品推荐
相关产品推荐

