我正在使用PyCharm在一个项目上工作。使用解释器打开并配置该项目,并可以成功运行。远程解释器路径映射正确。这似乎是正确的配置,但PyCharm突出显示了带有“未解决的引用”错误的有效代码,甚至对于内置的Python函数也是如此。为什么即使代码运行,这些似乎也没有被检测到?有没有什么方法可以让PyCharm正确识别这些?
此问题的具体实例是远程解释器,但本地解释器也会出现此问题。
我正在使用PyCharm在一个项目上工作。使用解释器打开并配置该项目,并可以成功运行。远程解释器路径映射正确。这似乎是正确的配置,但PyCharm突出显示了带有“未解决的引用”错误的有效代码,甚至对于内置的Python函数也是如此。为什么即使代码运行,这些似乎也没有被检测到?有没有什么方法可以让PyCharm正确识别这些?
此问题的具体实例是远程解释器,但本地解释器也会出现此问题。
当前回答
如果你正在使用vagrant,这个错误可能是由错误的python解释器引起的。 在我们的vagrant中,我们使用pyenv,所以我必须将Python解释器的路径路径从/usr/bin/python更改为/home/vagrant/.pyenv/versions/vagrant/bin/python
其他回答
在我的情况下,检查错误显示由于一个非常具体的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,从项目中删除。idea文件夹,然后再次启动Pycharm并重新创建项目。这为我工作,而无效缓存没有。
再补充一个:涉及Python解释器选项卡的解决方案都没有帮助,然而,我注意到我必须设置项目依赖项:在有未解决的引用错误的项目中,没有任何依赖项被检查。一旦我检查了,相关的错误就消失了。我不知道为什么一开始就检查了一些,而另一些没有。
我关闭了所有其他项目,并在Pycharm中单独运行所需的项目。我从pycharm创建了一个单独的virtualenv,并使用pip在其中添加了所有必需的模块。我在项目的解释器中添加了这个虚拟环境。这解决了我的问题。
当失效缓存或刷新路径不起作用时,我发现自己删除并重新添加远程解释器来修复这个问题。
我使用vagrant,每隔一段时间,如果我添加一个新的虚拟机到我的多虚拟机设置,转发的端口改变,这似乎使PyCharm混淆,当它试图使用错误的SSH端口时。更改端口似乎并不能帮助损坏的引用。