关于python:PyCharm没有识别Django项目导入:来自my_app.models导入的东西

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

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

my_app1/models.py

from my_app2.models import thing

"未解决的参考'my_app2'"

为什么是这样? 我的项目的目录结构与推荐的布局相匹配,并且运行没有错误,只是PyCharm的魔法不想对它起作用。

这似乎与这个问题有关:
在django项目中导入应用程序

但我无法弄清楚我做错了什么。 如果我尝试:

from ..my_app2.models import thing

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

ValueError: attempted relative import beyond top-level package

编辑:

项目结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
         ...


我使用"2 Scoops of Django"项目布局来解决这个问题,例如:

1
2
3
4
5
6
7
8
9
/project_root
    /project_dir
        /config
            /settings
        /my_app
            /tests
            models.py
    /requirements
    readme.rst

代码工作正常,但在/ tests中,IntelliJ / PyCharm显示了一个未解析的引用:

1
from my_app.models import Something

我有所有的__init__.py文件。我最终必须将源根目录设置为project_dir

右键单击project_dir,将Mark Directory标记为> Sources Root


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

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

希望这可能有用,欢呼!


我将环境改为virtualenv后,我遇到了这个问题,所以我将我的python解释器改为现在的virtualenv。

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

这对我有用。

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