我正在用Pycharm做一个项目。该项目已打开并配置了解释器,可以成功运行。远程解释器路径映射正确。这似乎是正确的配置,但是pycharm用"未解决的引用"错误突出显示了我的有效代码,即使对于内置的python函数也是如此。即使代码在运行,为什么不检测到这些?有没有办法让Pycharm正确识别这些?

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

有相同的问题和解决它。这里的解决方案。

文件使缓存无效…重新启动pycharm会有所帮助。

在我的例子中,这是处理pycharm 4.0.x的唯一方法。事实上,如果某个东西出错了,并且没有刷新(有时它甚至会在列表中显示同一个解释器重复多次),您将不得不手动删除文件…我甚至不得不删除一次.idea文件夹。

这太重了。在PyCharm 4.5中是否没有办法恢复旧的"刷新路径"选项?

这样一个IDE不处理这么简单的操作真的很烦人。

谢谢您。它适用于用户定义的引用

德米特里的回答对我不起作用。

我的工作是通过项目解释器,选择"路径"选项卡,然后点击该子菜单中的刷新按钮。它自动填充了一个叫做"Python骨架"的东西。

编辑:使用pycharm 3.4.1的屏幕截图(它隐藏得很好)

这对我的环境有帮助。我在本地dev-box上运行osx,在远程服务器上运行ubuntu。远程解释器设置似乎没有正确地自动配置。点击刷新按钮可以实现这一点——主要是:环境(本地2.7.2和远程2.7.3)之间的微小差异似乎导致了SQLAlchemy的破坏。

您的提示使用PyCharm 3.4 EAP解决了未解决的内置问题。

"python解释器"在哪里?你是说"项目翻译"?我正在使用Linux,也找不到路径选项卡。

这在Pycharm v3.4.1中对我很有用。

在OSX上的PyCharm 3.4中,它是一个图标,看起来像一个小文件夹树,不说"路径"。

这对我也有用,谢谢!

有人能用那个设置发布截图吗?

对于仍然困惑的任何人(Pycharm 3.4.1):Settings > Project Settings > Project Interpreter > Project Interpreters (gear button > more) > --Select the interpreter-- > Interpreter Paths (Directory Tree button on the right) > Reload List of Paths (Blue refresh-like button)

pycharm 4中没有这样的刷新按钮,只有加号和减号。

在pycharm4上,设置的路径是文件>设置>项目:【项目名称】>【项目解释器下拉列表右侧的齿轮符号】>更多…(项目解释器)>显示选定解释器的路径(底部图标、文件夹和树图标)>重新加载路径列表(底部lue图标)。它在视觉上类似于上面的Pycharm 3屏幕截图。

@Sarah在PyCharm 4.0.4中的"解释器路径"窗口中,我没有"重新加载路径列表"按钮(底部蓝色的刷新图标)。另外,我在列表中看不到任何路径,并且加和减按钮被禁用。

与此解决方案类似,从以前安装的pycharm中,我有一些旧的参考,指不再存在的解释程序(在括号中,它们说"无效")。我按照上述解决方案中的图片删除了所有口译员,并重新加载了正确的口译员。

这个对我有用!!

您可以使用ctrl+alt+s快速进入项目解释器屏幕。为了方便读者使用,在你的答案中增加一些内容。

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

以下是从"快速"到"烦人"的所有尝试:

执行File->Invalidate Caches / Restart,重新启动pycharm。

您也可以在下面的任何方法之后执行此操作,只是为了确保这一点。

首先,检查您运行的是哪个解释器:Run->Edit Configurations->Configuration->Python Interpreter。

刷新解释器的路径:

File->Settings。

Project: [name]->Project Interpreter->project explorer:gear icon->More...

单击"显示路径"按钮(底部一个)

单击"刷新"按钮(底部一个)

删除解释器并再次添加:

File->Settings。

Project: [name]->Project Interpreter->project explorer:gear icon->More...

单击"删除"按钮

点击"添加"按钮,重新添加您的仪表。

删除项目首选项

删除项目的.idea文件夹

关闭并重新打开Pycharm

从头开始打开项目

删除你的PyCharm用户首选项(但首先备份它们)。

Mac上的~/.PyCharm50

窗户上的%homepath%/.PyCharm50

切换到另一个解释器,然后再次切换到所需的解释器。

创建一个新的虚拟环境,并切换到该环境的解释器。

全部切换到另一个解释器,不要切换回。

我一直有这个问题,只要我一直使用Pycharm,他们仍然不能可靠地解决它。你以这种或那种方式涵盖了大部分工作的好处是最终解决了问题。有趣的是,我时不时回到这个答案,想弄清楚我忘记尝试的工作是什么。

我在这个列表中一路向下,删除/重新添加了为我工作的解释器。谢谢!

把它关掉/打开,这是一个很好的技巧:)

当无效缓存或刷新路径不起作用时,我发现自己正在删除并重新添加远程解释器来解决这个问题。

我使用vagrant,如果我在多虚拟机设置中添加一个新的虚拟机,转发的端口会发生变化,当pycharm尝试使用错误的ssh端口时,这似乎会混淆pycharm。更改端口似乎对断开的引用没有帮助。

在我的例子中,它是目录结构。我的项目如下:

+---dir_A

+---dir_B

+app

|

\-run.py

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

问题不是Pycharm无法识别项目代码。它不能识别标准的Python内置方法。

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

在Mac上,您要删除~/library/caches/pycharm40和~/library/preferences/pycharm40。

在Windows上:c:users$user.pycharm40。

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

单击Pycharm菜单。

选择项目解释程序。

选择Gear(档位)图标。

选择更多按钮。

选择您所在的项目解释器。

选择目录树按钮。

选择重新加载路径列表。

问题解决了!

很抱歉碰到这个问题,不过我有一个重要的更新要做。

如果您使用的是其他版本,您也可能希望将项目解释器恢复为python 2.7.6,这对我的ubuntu安装pycharm 4.04 professional很有用,但没有其他建议解决了我的问题。

切换到本地python 2解释器,然后再次返回到远程python 3解释器,也为我修复了这个问题。

这也适用于Pycharm 5专业版。这篇文章中的其他解决方案都没有对我有用。我走到Settings ->"Project Interpreters",按了一下齿轮,然后是"More..."。选择默认的python解释器(在我的例子中是/usr/bin/python2.7),点击"Ok"和"Apply"。然后返回并选择我想要使用的实际virtualenv。又是"Ok"和"Apply",它是固定的。

类似地,FileNotFoundError是一个python-3惟一的东西。在两个文件设置项目解释器中设置了正确的解释器并运行编辑配置之后,其中一个错误就消失了。

您可以尝试关闭pycharm,从项目中删除.idea文件夹,然后再次启动pycharm并重新创建项目。这对我有效,而无效缓存则没有。

在所有建议的解决方案都不适用于我之后,我终于实现了这一目标。我在玩一个django-rest框架项目,使用的是我用它设置的virtualenv。我可以通过将根文件夹标记为源根来修复pycharm,但是Django的服务器会抛出解决异常的方法。所以一个可以工作,另一个不行,反之亦然。

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

-playground

-env

-playground

第二个游乐场文件夹是我必须标记为源根的文件夹,以便一切按预期工作。这并没有给我的场景带来任何问题,所以这是一个可行的解决方案。

我只是想分享一下,以防别人能使用它。

它也可能是一个Python版本的问题。我得选一个合适的才能让它发挥作用。

极客真是个噩梦,我对不同堆垛的融合回答:

百万千克1切换到本地翻译/usr/bin/pythonx.x并应用百万千克1百万千克1查看上述答案的路径百万千克1百万千克1找到骷髅之路。我的是(/home/tim/desktop/pycharm-community-2016.2.3/helpers/python skeletons)百万千克1百万千克1切换回virt解释器,如果骨架路径没有自动显示,则手动添加骨架路径。百万千克1

以上所有的解决方案都不适合我!如果您正在为项目使用虚拟环境,请确保将虚拟环境目录中的python.exe文件用作项目(Alt + Ctrl + Shift + S)的解释器。这为我解决了这个问题。

在我的例子中,检查错误是由于一个非常具体的python代码案例而出现的。一个包含两个numpy函数和两个list访问的min函数使我的代码检查产生了这种错误。

在下面的示例中,删除"d=0"行会按预期提供未解决的引用错误,但读取不会使代码检查器的错误消失。之后我仍然可以毫无问题地执行代码。

import numpy as np

def strange(S, T, U, V):

d = 0

print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])

清除缓存和重新加载路径列表不起作用。只有使用以下示例修补程序之一更改代码才有效:

百万千克1"最小"参数的另一个顺序:示意性的S u v而不是S t u v或T s u v百万千克1百万千克1使用方法而不是函数:s[d].abs()而不是np.abs(s[d])百万千克1百万千克1使用内置的abs()函数百万千克1百万千克1将数字添加到所选参数:u[d]+0。百万千克1

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

如果您只想忽略一些"未解决的引用"错误,也可以通过将其放在类/方法/函数前面来显式地告诉它pycharm:

# noinspection PyUnresolvedReferences

如果您使用的是vagrant,那么错误可能是由错误的python解释器引起的。在我们的vagrant中,我们使用的是pyenv,所以我不得不把Python Interpreter path的路径从/usr/bin/python改为/home/vagrant/.pyenv/versions/vagrant/bin/python。氧化镁

您使用的是virtualenv吗?

如果是这样,您需要通知pycharm所需python.exe位置的每次更改(仅/activate对于pycharm来说是不够的)。

确保Pycharm指向正确的接口和包:文件->设置->项目->项目解释器。单击设备并选择virtualenv脚本文件夹下的python.exe。

氧化镁

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐