【问题标题】:Django ImportError 'No module named 'Django ImportError '没有名为'的模块
【发布时间】:2017-01-20 22:15:45
【问题描述】:

我正在尝试运行 django 应用,但在尝试从浏览器加载页面时遇到此错误:

No module named views

urls.py 中有问题的行是

from landpage.views import txt

文件结构如下:

更新

/myproject
    /myproject
        settings.py
    manage.py
    /landpage
        __init__.py
        models.py
        urls.py
        /views
            __init__.py
            landpage.py
            txt.py

我已经运行了命令python manage.py check --traceback 并得到了结果System check identified no issues (0 silenced).

我对 django 很陌生,所以我不确定还有什么要检查的或可能导致问题的原因。这个项目刚刚被克隆。我没有改变任何东西。

更新

views 文件夹下添加__init__.py 可修复此错误。现在landpage.py 中有一个新的from landpage.models import LandpageTeamMember 行,上面写着No module named models

【问题讨论】:

  • manage.py 在哪里?
  • @dahrens 用更详细的文件结构更新了问题
  • 您的登陆页文件夹是否包含__init__.py - 它需要一个被视为一个包。
  • 确实如此。这是一个空文件。
  • views 目录中是否还有__init__.py 文件?如果是,它仍然无法正常工作。在您的项目根文件夹中打开一个 django python shell,例如 python manage.py shell。尝试在那里导入。如果有错误,请执行import sys; print(sys.path)。这应该向您显示 python 尝试从中导入包和模块的所有根文件夹。阅读更多信息:stackoverflow.com/questions/7948494/…

标签: python django django-models django-urls


【解决方案1】:

尝试将__init__.py 放在views 目录中。

【讨论】:

    【解决方案2】:

    你可以改变

    landpage.views import txt
    

    myproject.landpage.views import txt
    

    所以错误说它无法导入,因为它在这里找不到landpage.views。 尝试去shell

    ./manage.py shell
    

    然后在shell中尝试导入

    from myproject.landpage.views import txt

    如果没有错误,那么你很好

    【讨论】:

    • 这给出了新的错误No module named landpage.views
    • 如果您的项目导入有错误(并且显然其他人开始参与该项目),您应该开始调查您的环境,在更改导入之前
    • 但是使用 django shell 进行调查是一个不错的方法! :)
    猜你喜欢
    • 2012-10-21
    • 2021-01-28
    • 2020-09-07
    • 2018-02-05
    • 2015-07-20
    • 2018-07-28
    • 2023-03-27
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多