【问题标题】:PyCharm not recognizing Django project imports: from my_app.models import thingPyCharm 无法识别 Django 项目导入:from my_app.models import thing
【发布时间】:2016-11-15 12:09:20
【问题描述】:

我刚刚开始在我现有的 Django 项目上测试 PyCharm,它无法识别来自我项目中应用程序的任何导入:

my_app1/models.py:

from my_app2.models import thing

“未解析的引用'my_app2'”

这是为什么?我的项目的目录结构与recommended layout匹配,并且它运行没有错误,只是PyCharm的魔法不想在它上面工作。

似乎与这个问题有关: Import app in django project

但我不知道我做错了什么。如果我尝试:

from ..my_app2.models import thing

PyCharm 错误消失了,它可以自动预测等。但是当我运行项目时 Django 抛出:

ValueError: attempted relative import beyond top-level package

编辑:

项目结构:

my_project/
   src/
      manage.py
      db.sqlite3
      my_app1/
         templates/
         __init.py__
         admin.py
         models.py
         urls.py
         views.py
         ...
      my_app2/
         templates/
         __init.py__
         admin.py
         models.py
         urls.py
         views.py
         ...
      my_project_app/
         settings/
         __init.py__
         urls.py
         ...

【问题讨论】:

  • 你试过了吗:从 .models 导入东西?
  • 我想从我项目中的另一个应用程序导入,而不是我所在的应用程序。所以这只会得到我当前应用程序的模型
  • 它可以正确解析,因为您在编写该代码的文件下方没有my_app 模块。
  • 你能编辑这个问题添加你项目的目录结构吗?并说明您要从哪个文件导入哪个
  • 已添加说明。谢谢!

标签: python django pycharm python-import


【解决方案1】:

我在使用“2 Scoops of Django”项目布局时遇到了这个问题,例如

/project_root
    /project_dir
        /config
            /settings
        /my_app
            /tests
            models.py
    /requirements
    readme.rst

代码可以运行,但在 /tests 中,IntelliJ/PyCharm 显示未解析的引用:

from my_app.models import Something

我已准备好所有 __init__.py 文件。我最终不得不将源根设置为project_dir

右击project_dir,Mark Directory as > Sources Root

【讨论】:

  • 我的个人英雄。这困扰了我很长一段时间!
  • 谢谢。一切正常,然后出现了这个问题。标记为 Sources Root 解决了问题
  • 谢谢!这个发行者困扰了我很长一段时间。
【解决方案2】:

现在我可以查看您的项目结构,我可以告诉您问题似乎与您的“src”文件夹中缺少__init__.py 有关。尝试在 'src' 文件夹的根目录中添加一个名为 __init__.py 的空文件。

另外,看看这个question,我认为是同样的问题或非常相似的问题。

希望这可能有用,干杯!

【讨论】:

    【解决方案3】:

    我将环境更改为 virtualenv 后遇到此问题,因此我将 python 解释器更改为当前的 virtualenv。

    转到文件 > 设置 > 项目解释器。 在该窗口中,您将能够看到此解释器中包含的所有包,Django 应该在那里。

    这对我有用。

    链接:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206598665-Unresolved-Reference-Errors-for-django

    【讨论】:

    • 这是关于 django 的。与项目模块无关。 IE。像from django.conf import settings 这样的结构会起作用,像from my_app.models import Model 这样的结构不会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多