我正在使用 PyCharm 来处理一个项目。该项目已打开并配置了解释器,并且可以成功运行。远程解释器路径已正确映射。这似乎是正确的配置,但 PyCharm 使用“未解决的引用”错误突出显示我的有效代码,即使对于内置 Python 函数也是如此。为什么这些似乎没有被检测到,即使代码运行?有什么方法可以让 PyCharm 正确识别这些?
这个问题的具体实例与远程解释器有关,但问题也出现在本地解释器上。
文件 | 使缓存无效...并重新启动 PyCharm 会有所帮助。
德米特里的回应对我不起作用。
我通过转到项目解释器,选择“路径”选项卡,然后点击该子菜单中的刷新按钮来开始我的工作。它自动填充了一种叫做“python-skeletons”的东西。
编辑:使用 PyCharm 3.4.1 的屏幕截图(隐藏得很好)
有很多解决方案,有些比其他的更方便,但它们并不总是有效。
以下是您可以尝试的所有方法,从“快速”到“烦人”:
File
->Invalidate Caches / Restart
并重新启动 PyCharm。
Run
-> Edit Configurations
-> Configuration
-> Python Interpreter
。File
->Settings
Project: [name]
-> Project Interpreter
-> '项目解释器':齿轮图标 ->More...
File
->Settings
Project: [name]
-> Project Interpreter
-> '项目解释器':齿轮图标 ->More...
.idea
文件夹~/.PyCharm50
在 Mac 上%homepath%/.PyCharm50
在 Windows 上如果您使用的是 Docker,请注意:
pip3
not pip
,尤其是远程 docker 和 docker-compose 解释器。PYTHONPATH
。更多信息:https ://intellij-support.jetbrains.com/hc/en-us/community/posts/115000058690-Module-not-found-in-PyCharm-but-externally-in-Python 。如果上述方法对您不起作用,但您确实找到了另一个技巧,请发表评论。
就我而言,它是目录结构。我的项目如下所示:
+---dir_A
+---dir_B
+app
|
\-run.py
所以右键单击 dir_b > “将目录标记为” > “项目根目录”
当无效缓存或刷新路径不起作用时,我发现自己删除并重新添加远程解释器以解决此问题。
我使用 vagrant,并且每隔一段时间,如果我在我的多虚拟机设置中添加一个新的虚拟机,转发的端口就会改变,当 PyCharm 尝试使用错误的端口进行 SSH 时,这似乎会让 PyCharm 感到困惑。更改端口似乎对损坏的引用没有帮助。
如果其他解决方案都不适合您,请尝试(备份)并删除您的 ~/.PyCharm40 文件夹,然后重新打开 PyCharm。这也会扼杀你所有的偏好。
在 Mac 上,您要删除 ~/Library/Caches/Pycharm40 和 ~/Library/Preferences/PyCharm40。
在 Windows 上:C:\Users\$USER.PyCharm40。
按照以下步骤使用 PyCharm 4.0.6 (OSX 10.10.3) 进行测试:
问题解决了!
很抱歉提出这个问题,但是我有一个重要的更新要做。
如果您使用的是除此之外的任何其他版本,您可能还希望将项目解释器恢复为 Python 2.7.6 在其他建议都没有解决我的问题之后,这在我的 PyCharm 4.04 专业版的 Ubuntu 安装上对我有用。
以更简单的动作为我工作:
File > Settings > Project > Project Interpreter
> Select "No interpreter" in the "Project interpreter" list
> Apply > Set your python interpreter again > Click Apply
利润 - Pycharm 正在更新骨架,一切都很好。
您可以尝试关闭 Pycharm,.idea
从项目中删除该文件夹,然后再次启动 Pycharm 并重新创建项目。这对我有用,而使缓存无效却没有。
如果您只想忽略一些“未解决的引用”错误,您还可以通过将其放在您的类/方法/函数前面来明确告诉它 PyCharm:
# noinspection PyUnresolvedReferences
在提出的解决方案都不适合我之后,我终于得到了这个工作。我正在玩一个 django rest 框架项目,并且正在使用我设置的 virtualenv。我可以通过将根文件夹标记为源根来修复 Pycharm,但是 django 的服务器会抛出解析异常。因此,当另一个不工作时,一个会起作用,反之亦然。
最终,我只需要将子文件夹标记为 pycharm 中的源根目录。所以我的结构是这样的
-playground
-env
-playground
第二个游乐场文件夹是我必须将其标记为源根目录的文件夹,以使所有内容都能按预期工作。这对我的方案没有任何问题,因此这是一个可行的解决方案。
只是想我会分享以防其他人可以使用它。
没有一个答案解决了我的问题。
它对我来说是切换环境并回到相同的环境。File->Settings->Project interpreter
我正在使用 conda 环境。
我关闭了所有其他项目并在 Pycharm 中单独运行我需要的项目。我从 pycharm 创建了一个单独的 virtualenv,并使用 pip 在其中添加了所有必需的模块。我在项目的解释器中添加了这个虚拟环境。这解决了我的问题。
哎呀,真是一场噩梦,我融合了不同的 StackOVerflow 答案:
以上解决方案都不适合我!
如果您为项目使用虚拟环境,请确保将python.exe
虚拟环境目录中的文件应用为项目的解释器,(Alt + Ctrl + Shift + S)
这为我解决了这个问题。
在我的情况下,由于 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])
清除缓存和重新加载路径列表不起作用。仅使用以下示例补丁之一更改代码才有效:
按照其他答案的建议使缓存无效对我不起作用。我发现我的问题是 PyCharm 将 Python 包的 init.py 文件标记为文本,因此未将它们包括在分析中,这意味着 python 解析无法正常工作。
我的解决方案是:
打开 PyCharm 设置 Navigate to Editor -> File Types Find Python and add __init__.py
to the list of python files
or Find Text and delete __init__.py
from the list of text files
我有一个项目,其中一个文件在src/
同一目录中导入另一个文件。要让 PyCharm 识别,我必须转到文件 > 设置 > 项目 > 项目结构 > 选择src
文件夹并单击“标记为:来源”
来自https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-root.html
源根包含实际的源文件和资源。PyCharm 使用源根作为解析导入的起点
我不得不去 File->Invalidate Caches/Restart,重新启动 Ubuntu 18.04 LTS,然后在它清除之前再次打开 Pycharm 和 File->Invalidate Caches/Restart。
对我来说,它有帮助:更新您的主目录“将目录标记为”->“源根目录”
@kelorek 为我工作,但在此之前,在 interpereter 路径中我必须添加一些路径。让我们说
from geometry_msgs.msg import Twist
下划线为错误,然后在 python 的远程机器中运行:
help("geometry_msgs")
最后会有路径让我们说:
/opt/ros/foxy/lib/python3.8/site-packages/geometry_msgs/__init__.py
所以你的解释器pycharm路径添加
/opt/ros/foxy/lib/python3.8/site-packages
希望它会帮助你,它会帮助我:)
我有同样的症状。在我的例子中,问题的根源是我在自定义属性中设置了idea.max.intellisense.filesize=50。我可以通过将其设置为 100 来解决它。
帮助->编辑自定义属性