pycharm 没有正确检查进口

pycharm not inspecting imports correctly

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

对于models.py,代码是:

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 代码是:

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

views.py 将 运行 但 pycharm 将这些行标记为未解析的引用。只有当我这样重写这些行时:

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

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

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

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

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

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

右键单击项目的根目录,然后选择 "Mark Directory as",然后选择 "Sorces Root"。这应该可以解决。

查看这张图片: