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

Django 4.1.7与Pydroid3中views模块导入失败问题求助

Django导入views模块错误的解决方案

问题分析

在Django 4.1.7、Pydroid3 Python 3.9.7环境下,my_app目录下的urls.py与views.py同目录,但出现两类导入错误:

  • 使用相对导入from . import views启动开发服务器时,提示module import error: no module named views
  • 直接运行urls.py时,提示import error: attempted relative import with no parent package
  • 改为from views import index后,直接运行无错误,但服务器启动仍报错

解决方案

1. 确认应用已注册

my_app必须是Django认可的合法应用,检查项目根目录的settings.py,确保my_app在INSTALLED_APPS列表中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'my_app',  # 必须存在这一行
]

2. 修正urls.py的代码逻辑

你的urls.py存在两处问题:相对导入的使用场景、视图函数的引用方式,正确写法如下:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index')  # 必须通过views.前缀引用视图函数
]

from . import views是Django应用内导入的标准写法,不要改成from views import index——Django启动时以项目根目录为模块搜索起点,直接写views会被识别为顶级模块,无法找到my_app下的对应文件。

3. 禁止直接运行urls.py

Django的urls.py是框架配置文件,不能单独作为脚本运行。相对导入仅在包(包含__init__.py的目录)环境下有效,直接运行urls.py时,它会被视为独立脚本而非包的一部分,因此触发相对导入错误。启动服务器必须使用Django官方命令:

python manage.py runserver

4. 规范Pydroid3的运行路径

在Pydroid3中,务必从项目根目录(包含manage.py的目录)启动服务器,不要直接打开my_app/urls.py运行。可以通过Pydroid的文件管理器定位到项目根目录,打开终端执行上述runserver命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:12:46