pycharm没有正确检查导入

pycharm not inspecting imports correctly

对于下面的目录结构,pycharm似乎无法检测从一个文件到另一个文件的导入

  • puzzle_project

    • __init__.py
    • snippets

      • __init__.py
      • models.py
      • views.py

对于models.py,代码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from django.db import models
from pygments.lexers import get_all_lexers
from pygments.styles import get_all_styles

LEXERS = [item for item in get_all_lexers() if item[1]]
LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS])
STYLE_CHOICES = sorted((item, item) for item in get_all_styles())


class Snippet (models.Model):
    created = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=100, blank=True, default='')
    code = models.TextField()
    linenos = models.BooleanField(default=False)
    language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100)
    style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100)

    class Meta:
        ordering = ('created',)

对于views.py,代码是:

1
2
from snippets.models import Snippet
from snippets.serializers import SnippetSerializer

views.py将运行但pycharm将这些行标记为Unresolved Refrence。 只有当我重写这样的行:

1
2
from puzzle_project.snippets.models import Snippet
from puzzle_project.snippets.serializers import SnippetSerializer

将pycharm声明为未解析的引用。 请注意,上面的代码不会在python中运行。

请注意我使用的是最新版本的pycharm和python 3.4

我如何让pycharm正确检查这些代码行?


问题在于首选项中的项目结构。 确保正确设置了根目录。 检查员使用此设置检查代码作为当前工作目录。

检查员将某些事情标记为错误,因为如果我从与根设置相同的目录运行解释器,我将得到相同的错误。 因此,要修复错误,请更改pycharm的项目结构首选项中的根设置,或者更改运行解释器的位置的cwd。


右键单击应该是项目根目录的目录,然后选择"将目录标记为",然后选择"Sorces Root"。 这应该解决。

看这个图片:

Defining the root directory