PyCharm显示有效代码的未解析引用错误

Jam*_*den 264 python pycharm

我正在使用PyCharm来处理一个项目.项目打开并配置了解释器,可以成功运行.远程解释器路径已正确映射.这似乎是正确的配置,但是PyCharm突出了我的有效代码,带有"未解析的引用"错误,即使对于内置的Python函数也是如此.为什么这些似乎没有被检测到,即使代码运行?有没有办法让PyCharm正确识别这些?


这个问题的具体实例是使用远程解释器,但问题也出现在本地解释器上.

Dmi*_*mov 414

档案| 使高速缓存无效......并重新启动PyCharm会有所帮助.

  • 这是如此重量级.有没有办法在PyCharm 4.5中获得旧的"刷新路径"选项? (10认同)
  • 如此的IDE无法处理如此简单的操作真的很烦人。 (5认同)
  • 接受的答案是重量级的,很可能没有解决问题的症结。以下是直接来自马口的信息:[JetBrains - PyCharm 内容根](https://jetbrains.com/help/pycharm/content-root.html) **“PyCharm 使用源根作为解析导入的起点“** 我遇到的问题与标题中的完全一样,因为在某些项目中我需要使用源位于子文件夹中的文件树,然后 PyCharm 对导入感到困惑。终止缓存可能会暂时有所帮助,但不是正确的方法。将源目录标记为根目录,一切都很好。 (4认同)
  • 在我的案例中,这是处理PyCharm 4.0.x的唯一方法.事实是,如果某些东西搞砸了并且它没有刷新(有时它甚至会在列表中显示相同的解释器重复几次),你将不得不手动删除文件...我甚至不得不删除.idea文件夹一次. (3认同)
  • 它可以暂时工作。几分钟后,我再次收到相同的警告 (2认同)
  • 警告:您可能认为这可以解决您的问题,但事实并非如此。当 Pycharm 重新打开时,您可以在底部看到它只是重建缓存。在此期间,部分代码分析被关闭。因此,如果这隐藏了您的警告消息,它可能实际上并不能解决问题!这就是为什么 @Aseem 认为它只能暂时解决问题。重建完成后,错误将返回。真正的解决方案可能更像是 predmod 所建议的。 (2认同)

kel*_*rek 126

德米特里的回应对我不起作用.

我通过前往Project Interpreters工作,选择"路径"选项卡,然后点击该子菜单中的刷新按钮.它自动填充了一些名为"python-skeletons"的东西.

编辑:使用PyCharm 3.4.1截图(它隐藏得很好)

在此输入图像描述

  • 对于任何仍然困惑的人(在PyCharm 3.4.1中):`设置>项目设置>项目翻译>项目解释器(齿轮按钮>更多)> - 选择解释器 - >解释器路径(右侧的目录树按钮)>重新加载路径列表(蓝色刷新式按钮)` (12认同)
  • "Python解释器"在哪里?你的意思是"项目口译员"吗?我正在使用Linux,我也找不到路径选项卡. (6认同)
  • PyCharm 4中没有这样的刷新按钮,只有加号和减号. (5认同)
  • @Sarah在PyCharm 4.0.4中,在"Interpreter Paths"窗口中,我没有"重新加载路径列表"按钮(底部的蓝色刷新图标).此外,我没有看到列表中的任何路径,加号和减号按钮被禁用. (3认同)

flo*_*sla 60

有很多解决方案,有些比其他更方便,而且它们并不总是有效.

以下是您可以尝试的所有内容,从"快速"到"烦人":

  • 执行File- > Invalidate Caches / Restart并重新启动PyCharm.
    • 您也可以在以下任何一种方法之后执行此操作,只是为了确定.
  • 首先,检查您正在运行的解释器:Run- > Edit Configurations- > Configuration- > Python Interpreter.
  • 刷新解释器的路径:
    • File - > Settings
    • Project: [name]- > Project Interpreter- >'Project Interpreter':齿轮图标 - >More...
    • 点击"显示路径"按钮(底部一个)
    • 单击"刷新"按钮(底部一个)
  • 删除解释器并再次添加:
    • File - > Settings
    • Project: [name]- > Project Interpreter- >'Project Interpreter':齿轮图标 - >More...
    • 单击"删除"按钮
    • 单击"添加"按钮并重新添加您的interpeter
  • 删除项目首选项
    • 删除项目的.idea文件夹
    • 关闭并重新打开PyCharm
    • 从头开始打开您的项目
  • 删除PyCharm用户首选项(但首先备份它们).
    • ~/.PyCharm50 在Mac上
    • %homepath%/.PyCharm50 在Windows上
  • 切换到另一个解释器,然后再返回到您想要的解释器.
  • 创建一个新的虚拟环境,并切换到该环境的解释器.
  • 完全切换到另一个解释器,不要切换回来.

  • 我按照这个列表的方式工作,删除/重新添加解释器为我工作.谢谢! (3认同)
  • 自从我使用 PyCharm 以来,我就一直遇到这个问题,但他们仍然无法可靠地解决它。幸运的是,您已经以某种方式完成了大部分工作,最终解决了问题。有趣的是,我时不时地回到这个答案来找出我忘记尝试的解决办法。 (2认同)
  • 我尝试了上述所有内容,对我来说,创建一个新的虚拟环境只有在完全不同的位置创建它时才有效。我的项目中有一个“venv”文件夹,但它一直显示为“未解析的引用”(即使它正确执行)。我在项目文件夹之外创建了一个新的 venv,然后它就起作用了。不知道为什么。 (2认同)

Sho*_*ham 12

就我而言,它是目录结构.我的项目看起来像这样:

+---dir_A
    +---dir_B
        +app
        |
        \-run.py
Run Code Online (Sandbox Code Playgroud)

所以右键单击dir_b>"将目录标记为">"项目根目录"

  • 问题不在于 PyCharm 不识别 *project* 代码。它不识别标准的 Python 内置方法。 (5认同)

Tho*_*our 11

当Invalidating Caches或Refreshing Paths不起作用时,我发现自己删除并重新添加远程解释器以解决此问题.

我使用vagrant并且每隔一段时间如果我在我的multi-vm设置中添加一个新的VM,转发的端口就会改变,这似乎会在PyCharm尝试使用错误的SSH端口时感到困惑.更改端口似乎没有帮助破坏的引用.


Imr*_*ran 10

如果其他解决方案都不适合您,请尝试(备份)并删除〜/ .PyCharm40文件夹,然后重新打开PyCharm.这也会杀死你的所有偏好.

在Mac上你想删除〜/ Library/Caches/Pycharm40和〜/ Library/Preferences/PyCharm40.

在Windows上:C:\ Users\$ USER.PyCharm40.


sir*_*pan 10

按照以下步骤使用PyCharm 4.0.6(OSX 10.10.3)进行测试:

  1. 单击PyCharm菜单.
  2. 选择Project Interpreter.
  3. 选择齿轮图标.
  4. 选择更多按钮.
  5. 选择您所在的Project Interpreter.
  6. 选择目录树按钮.
  7. 选择"重新加载路径列表".

问题解决了!


Fai*_*ony 6

很抱歉打破这个问题,但我有一个重要的更新.

您可能还想将项目解释器还原为Python 2.7.6如果您使用的是任何其他版本,那么在我的Ubuntu安装PyCharm 4.04专业版后,这对我没有任何其他建议解决了我的问题.


小智 6

很容易

您只需将根目录标记为:SOURCE ROOT(红色),并将您的应用程序标记为EXCLUDED ROOT(蓝色),

那么未解决的参考将消失。

  • 在此处输入图片说明如果您使用PyChram pro,它将自动为您执行此操作。

  • 我有pycharm pro,它没有为我执行此操作,但是在我手动正确标记文件夹后,它可以工作 (5认同)
  • 是的,这是正确的答案,而不是一些核选项,副作用暂时有所帮助,但没有解决 jetbrains 工具的思考方式(“杀死缓存”,对……当它重建时?“再次杀死它” !”)。标题正是我的项目中的问题,其中项目根不一定是源根,导入无法理解这一点。以下是直接来自马口的信息 https://www.jetbrains.com/help/pycharm/content-root.html “PyCharm 使用源根作为解析导入的起点”! (2认同)

fli*_*lix 5

如果您只想忽略一些“未解析的引用”错误,您还可以通过将其放在类/方法/函数前面来显式告诉 PyCharm:

# noinspection PyUnresolvedReferences
Run Code Online (Sandbox Code Playgroud)


Ale*_*kin 5

更简单的动作为我工作:


File > Settings > Project > Project Interpreter 
> Select "No interpreter" in the "Project interpreter" list 
> Apply > Set your python interpreter again > Click Apply

Run Code Online (Sandbox Code Playgroud)

利润 - Pycharm 正在更新骨架,一切正常。