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

Django项目中Webscrape脚本导入projects模块报错求助

Django爬虫脚本导入ORM模型报错:ModuleNotFoundError: No module named 'projects'

问题详情

开发Django应用时,计划通过网页爬取数据插入Django ORM,但在Scripts/Webscrape.py中导入projects/models.py里的Weather类时触发上述错误,已尝试更新sys.path但无效。

项目结构

app
├── projects
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── views.py
│   ├── urls.py
│   └── admin.py
└── Scripts
    ├── Webscrape.py
    └── __init__.py

相关代码

Webscrape.py

from projects.models import Weather

projects/models.py

from django.db import models

class Weather(models.Model):
    Date = models.DateField(blank=False, default='1900-01-01',)
    Temperature = models.CharField(max_length=15)

INSTALLED_APPS配置

INSTALLED_APPS = [
    'pages.apps.PagesConfig',
    'projects.apps.ProjectsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'huey.contrib.djhuey',
    'Scripts',
]

解决步骤

1. 初始化Django环境

直接运行脚本无法加载Django的配置环境,必须在脚本开头添加初始化代码:

import os
import django

# 替换成你的项目settings模块路径,比如app是根目录下的主项目文件夹
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
django.setup()

# 初始化后再导入模型
from projects.models import Weather

2. 修正Python路径

如果仍报错,确保项目根目录(包含app的文件夹)在Python搜索路径中,在Django初始化代码前添加:

import sys
from pathlib import Path

# 获取项目根目录:从Webscrape.py往上两级就是app目录,再往上就是项目根目录
PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent
sys.path.append(str(PROJECT_ROOT))

3. 正确运行脚本

从项目根目录执行脚本,避免路径混乱:

cd /path/to/your/project-folder
python app/Scripts/Webscrape.py

或者用模块方式运行:

python -m app.Scripts.Webscrape

4. 验证APP注册

你的INSTALLED_APPS里已经正确注册了projects,这部分无需修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 07:23:10