pycharm没有正确检查导入

时间:2015-06-20 04:35:52

标签: pycharm

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

  • puzzle_project

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

对于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将这些行标记为Unresolved Refrence。只有当我重写这样的行:

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:-1)

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

看到这张图片:

Defining the root directory