PyCharm 无法识别 Django 项目导入:来自 my_app.models import thing

PyCharm not recognizing Django project imports: from my_app.models import thing

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

my_app1/models.py中:

from my_app2.models import thing

"Unresolved reference 'my_app2'"

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

似乎与这个问题有关:

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

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
         ...

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

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

希望这可能有用,干杯!

我在使用“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,将目录标记为 > Sources Root

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

转到“文件”>“设置”>“项目解释器”。 在那里 window 你将能够看到这个解释器上包含的所有包,Django 应该在那里。

这对我有用。

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