我正在使用PyCharm在一个项目上工作。使用解释器打开并配置该项目,并可以成功运行。远程解释器路径映射正确。这似乎是正确的配置,但PyCharm突出显示了带有“未解决的引用”错误的有效代码,甚至对于内置的Python函数也是如此。为什么即使代码运行,这些似乎也没有被检测到?有没有什么方法可以让PyCharm正确识别这些?


此问题的具体实例是远程解释器,但本地解释器也会出现此问题。


当前回答

你必须把你的根目录标记为: 源根(红色), 以及您的应用: 排除ROOT(蓝色)。

那么未解决的引用就会消失。如果你使用PyChram pro,它会自动为你做这个。

其他回答

在所有建议的解决方案都不适合我之后,我终于让它工作了。我正在玩一个django rest框架项目,并使用了我已经设置好的virtualenv。我可以通过将根文件夹标记为源根来修复Pycharm,但是django的服务器会抛出解析异常。所以一个会工作,而另一个不会,反之亦然。

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

-playground
     -env
     -playground

第二个playground文件夹是我必须标记为源代码根以便一切正常工作的文件夹。这在我的场景中没有出现任何问题,所以这是一个可行的解决方案。

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

在我的情况下,检查错误显示由于一个非常具体的python代码的情况。 包含两个numpy函数和两个列表访问的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])

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

“min”参数的另一种顺序:简图上的S U T V,但不是S T U V或T S U V 使用方法而不是函数:S[d].abs()而不是np.abs(S[d]) 使用内置的abs()函数 将一个数字添加到所选参数:U[d] + 0。

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

很抱歉打断这个问题,但是我有一个重要的更新要做。

如果你使用的是Python 2.7.6以外的版本,你可能还想把你的项目解释器恢复到Python 2.7.6。在我安装PyCharm 4.04 professional时,这对我来说很有效,因为其他的建议都不能解决我的问题。

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