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

我正在使用PyCharm来开展一个项目。 该项目打开并configuration一个解释器,并可以成功运行。 远程解释器path映射正确。 这似乎是正确的configuration,但PyCharm突出我的有效代码与“未解决的参考”错误,即使是内置的Python函数。 为什么这些似乎没有被发现,即使代码运行? 有没有办法让PyCharm正确识别这些?


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

文件| 使caching无效…并重新启动PyCharm帮助。

德米特里的回应并不适合我。

通过转到Project Interpreters,select“path”选项卡,然后点击该子菜单中的刷新button,我得到了我的工作。 它自动填充了一些名为“python-skeletons”的东西。

编辑 :使用PyCharm 3.4.1截图(这是很好的隐藏)

在这里输入图像描述

有很多解决scheme,比别人更方便,并不总是工作。

从“快”到“烦人”,您可以尝试以下所有方法:

  • File – > Invalidate Caches / Restart并重新启动PyCharm。
    • 只要可以肯定,你也可以在下面的任何一种方法之后做到这一点。
  • 刷新你的解释器的path:
    • File – > Settings
    • Project: [name] – > Project Interpreter – >'项目解释器':齿轮图标 – > More
    • 点击“显示path”button(下一个)
    • 点击“刷新”button(下方)
  • 删除解释器并再次添加它:
    • File – > Settings
    • Project: [name] – > Project Interpreter – >'项目解释器':齿轮图标 – > More
    • 点击“删除”button
    • 点击“添加”button,重新添加你的中间人
  • 删除您的项目首选项
    • 删除您的项目的.idea文件夹
    • closures并重新打开PyCharm
    • 从头开始你的项目
  • 删除您的PyCharm用户首选项(但先备份)。
    • ~/.PyCharm50在Mac上
    • %homepath%/.PyCharm50 Windows上的%homepath%/.PyCharm50
  • 切换到另一个解释器,然后再回到你想要的。
  • 切换到另一个解释器,不要切换回来。

我发现自己删除并重新添加远程解释器来解决此问题时,无效caching或刷新path不起作用。

我使用vagrant和每隔一段时间,如果我添加一个新的VM到我的multi-vm设置,转发的端口改变,这似乎混淆了PyCharm,当它试图使用SSH端口错误。 改变端口似乎没有帮助破碎的参考。

如果没有其他解决scheme适用于您,请尝试(备份)并删除〜/ .PyCharm40文件夹,然后重新打开PyCharm。 这也将杀死你的所有偏好。

在Mac上,您要删除〜/ Library / Caches / Pycharm40和〜/ Library / Preferences / PyCharm40。

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

使用PyCharm 4.0.6(OSX 10.10.3)testing以下步骤:

  1. 点击PyCharm菜单。
  2. select项目解释器。
  3. select齿轮图标。
  4. select更多button。
  5. select你所在的项目解释器。
  6. select目录树button。
  7. select重新加载path列表。

问题解决了!

在我的情况下,这是目录结构。 我的项目是这样的:

 +---dir_A +---dir_B +app | \-run.py 

所以右键点击dir_b>“将目录标记为”>“项目根目录”

对不起,碰到这个问题,但是我有一个重要的更新。

如果你使用的是任何其他版本,你可能还想把你的项目解释器恢复到Python 2.7.6这个工作在我的Ubuntu安装的PyCharm 4.04专业版后没有其他的build议解决了我的问题。

您可以尝试closuresPycharm,删除项目中的.idea文件夹,然后再次启动Pycharm并重新创build项目。 这对我工作,而无效caching没有。

在没有任何提议的解决scheme为我工作之后,我终于得到了这个工作。 我正在玩django rest框架项目,并使用我已经设置的virtualenv。 我能够通过将根文件夹标记为源根来修复Pycharm,但是然后django的服务器会抛出parsingexception。 所以一个人会工作时,另一个不会,反之亦然。

最后,我只需要将子文件夹标记为pycharm中的源代码。 所以我的结构就是这样

 -playground -env -playground 

第二个操场文件夹是我必须标记为所有事情的根源,以达到预期的效果。 这对我的情况没有任何问题,所以这是一个可行的解决scheme。

只是以为我会分享,以防别人可以使用它。

这也可能是一个python版本的问题。 我不得不挑选合适的工作。 在这里输入图像描述

我closures了所有其他项目,并在Pycharm中单独运行我所需的项目。 我从pycharm创build了一个独立的virtualenv,并使用pip在其中添加了所有必需的模块。 我在项目的解释器中添加了这个虚拟环境。 这解决了我的问题。

哎呀什么恶梦,我不同的StackOVerflow答案的合并:

  1. 切换到本地解释器/usr/bin/pythonX.X并应用
  2. 查看上面的path答案
  3. find骨架path。 我是(/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. 如果没有自动显示,请切换回virt解释器并手动添加骨架path。

上述解决scheme都不适合我!
如果您的项目使用的是虚拟环境,请确保将您虚拟环境目录中的python.exe文件作为项目解释程序(Alt + Ctrl + Shift + S)这为我解决了这个问题。