我正在使用 PyCharm 来处理一个项目。该项目已打开并配置了解释器,并且可以成功运行。远程解释器路径已正确映射。这似乎是正确的配置,但 PyCharm 使用“未解决的引用”错误突出显示我的有效代码,即使对于内置 Python 函数也是如此。为什么这些似乎没有被检测到,即使代码运行?有什么方法可以让 PyCharm 正确识别这些?
这个问题的具体实例与远程解释器有关,但问题也出现在本地解释器上。
文件 |使缓存无效...并重新启动 PyCharm 会有所帮助。
德米特里的回应对我不起作用。
我通过转到项目解释器,选择“路径”选项卡,然后点击该子菜单中的刷新按钮来开始我的工作。它自动填充了一种叫做“python-skeletons”的东西。
编辑:使用 PyCharm 3.4.1 的屏幕截图(隐藏得很好)
https://i.stack.imgur.com/YjxLX.jpg
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)
有很多解决方案,有些比其他的更方便,但它们并不总是有效。
以下是您可以尝试的所有方法,从“快速”到“烦人”:
执行 File -> Invalidate Caches / Restart 并重新启动 PyCharm。您也可以在以下任何一种方法之后执行此操作,以确保这一点。
您也可以在以下任何一种方法之后执行此操作,以确保这一点。
首先,检查您正在运行的解释器:运行 -> 编辑配置 -> 配置 -> Python 解释器。
刷新解释器的路径:文件->设置项目:[名称]->项目解释器->“项目解释器”:齿轮图标->更多...单击“显示路径”按钮(底部一个)单击“刷新” ' 按钮(底部)
文件 -> 设置
项目:[名称] -> 项目解释器 -> '项目解释器':齿轮图标 -> 更多...
单击“显示路径”按钮(底部)
单击“刷新”按钮(底部)
删除解释器并再次添加: File -> Settings Project: [name] -> Project Interpreter -> 'Project Interpreter': Gear icon -> More... 单击“Remove”按钮 单击“Add”按钮并重新- 添加你的解释者
文件 -> 设置
项目:[名称] -> 项目解释器 -> '项目解释器':齿轮图标 -> 更多...
单击“删除”按钮
单击“添加”按钮并重新添加您的解释器
删除您的项目首选项 删除您的项目的 .idea 文件夹 关闭并重新打开 PyCharm 从头开始打开您的项目
删除项目的 .idea 文件夹
关闭并重新打开 PyCharm
从头开始打开您的项目
删除您的 PyCharm 用户首选项(但先备份它们)。 ~/.PyCharm50 在 Mac 上 %homepath%/.PyCharm50 在 Windows 上
~/.PyCharm50 在 Mac 上
Windows 上的 %homepath%/.PyCharm50
切换到另一个口译员,然后再回到您想要的口译员。
创建一个新的虚拟环境,并切换到该环境的解释器。
在项目文件夹之外的新位置创建一个新的虚拟环境,然后切换到该环境的解释器。
完全切换到另一个口译员;不要切换回来。
如果您使用的是 Docker,请注意:
确保您使用的是 pip3 而不是 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。
如果上述方法对您不起作用,但您确实找到了另一个技巧,请发表评论。
pip3
而不是 pip
,尤其是使用远程 docker 和 docker-compose 解释器。 2) 如果您使用 docker-compose 和/或 docker 玩弄 PYTHONPATH
可能会导致这些类型的问题。更多信息:intellij-support.jetbrains.com/hc/en-us/community/posts/…
venv
文件夹,但它一直显示为“未解析的引用”(即使它执行正确)。我在我的项目文件夹之外创建了一个新的 venv,然后它就起作用了。不知道为什么。
就我而言,它是目录结构。我的项目如下所示:
+---dir_A
+---dir_B
+app
|
\-run.py
所以右键单击 dir_b > “将目录标记为” > “项目根目录”
您必须将根目录标记为:SOURCE ROOT
(红色),您的应用程序:EXCLUDED ROOT
(蓝色)。
然后未解析的引用将消失。如果您使用 PyChram pro,它会自动为您执行此操作。
https://i.stack.imgur.com/iwtxJ.png
当无效缓存或刷新路径不起作用时,我发现自己删除并重新添加远程解释器以解决此问题。
我使用 vagrant,并且每隔一段时间,如果我在我的多虚拟机设置中添加一个新的虚拟机,转发的端口就会改变,当 PyCharm 尝试使用错误的端口进行 SSH 时,这似乎会让 PyCharm 感到困惑。更改端口似乎对损坏的引用没有帮助。
如果其他解决方案都不适合您,请尝试(备份)并删除您的 ~/.PyCharm40 文件夹,然后重新打开 PyCharm。这也会扼杀你所有的偏好。
在 Mac 上,您要删除 ~/Library/Caches/Pycharm40 和 ~/Library/Preferences/PyCharm40。
在 Windows 上:C:\Users\$USER.PyCharm40。
~/Library/Caches/
中删除了 JetBrains 目录,并在 ~/Library/Preferences
中删除了一个或多个 文件,因为没有与 JetBrains 相关的目录。在我的情况下,docker-compose 解释器无法解决导入问题。但是使用从完全相同的 docker-compose 文件启动的服务,一切都与 Docker 解释器一起工作。疯狂的。
按照以下步骤使用 PyCharm 4.0.6 (OSX 10.10.3) 进行测试:
单击 PyCharm 菜单。选择项目解释器。选择齿轮图标。选择更多按钮。选择您所在的项目解释器。选择目录树按钮。选择重新加载路径列表。
问题解决了!
很抱歉提出这个问题,但是我有一个重要的更新要做。
如果您使用的是除此之外的任何其他版本,您可能还希望将项目解释器恢复为 Python 2.7.6 在其他建议都没有解决我的问题之后,这在我的 PyCharm 4.04 专业版的 Ubuntu 安装上对我有用。
Settings -> "Project Interpreters"
,点击齿轮,然后点击 "More..."
。选择默认的 python 解释器(在我的例子中是 /usr/bin/python2.7
),点击 "Ok"
和 "Apply"
。然后返回并选择我想使用的实际 virtualenv。 "Ok"
和 "Apply"
再次,它已修复。
FileNotFoundError
是 Python-3-only 的东西。在 File-Settings-Project-Interpreter 和 Run-Edit-Configurations 中设置正确的解释器后,其中一个使错误消失。
如果您只想忽略一些“未解决的引用”错误,您还可以通过将其放在您的类/方法/函数前面来明确告诉它 PyCharm:
# noinspection PyUnresolvedReferences
更简单的操作:
文件 > 设置 > 项目 > 项目解释器
在“项目解释器”列表中选择“无解释器”
应用 > 再次设置你的 python 解释器 > 点击应用
利润 - Pycharm 正在更新骨架,一切都很好。
您可以尝试关闭 Pycharm,从项目中删除 .idea
文件夹,然后再次启动 Pycharm 并重新创建项目。这对我有用,而使缓存无效却没有。
在提出的解决方案都不适合我之后,我终于得到了这个工作。我正在玩一个 django rest 框架项目,并且正在使用我设置的 virtualenv。我可以通过将根文件夹标记为源根来修复 Pycharm,但是 django 的服务器会抛出解析异常。因此,当另一个不工作时,一个会起作用,反之亦然。
最终,我只需要将子文件夹标记为 pycharm 中的源根目录。所以我的结构是这样的
-playground
-env
-playground
第二个游乐场文件夹是我必须将其标记为源根目录的文件夹,以使所有内容都能按预期工作。这对我的方案没有任何问题,因此这是一个可行的解决方案。
只是想我会分享以防其他人可以使用它。
https://i.stack.imgur.com/Z5bjt.png
没有一个答案解决了我的问题。
它对我来说是切换环境并回到相同的环境。 File->Settings->Project interpreter
我正在使用 conda 环境。
我关闭了所有其他项目并在 Pycharm 中单独运行我需要的项目。我从 pycharm 创建了一个单独的 virtualenv,并使用 pip 在其中添加了所有必需的模块。我在项目的解释器中添加了这个虚拟环境。这解决了我的问题。
哎呀,真是一场噩梦,我融合了不同的 StackOVerflow 答案:
切换到本地解释器 /usr/bin/pythonX.X 并应用查看路径,如上面的答案查找骨架路径。我的是(/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)切换回virt解释器并手动添加骨架路径,如果它没有自动显示。
以上解决方案都不适合我!
如果您为项目使用虚拟环境,请确保将虚拟环境目录中的 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])
清除缓存和重新加载路径列表不起作用。仅使用以下示例补丁之一更改代码才有效:
“最小”参数的另一种排序:示意性 SUTV,但不是 STUV 或 TSUV
使用方法而不是函数: S[d].abs() 而不是 np.abs(S[d])
使用内置 abs() 函数
将数字添加到选择的参数:U[d] + 0。
我的问题是 PyCharm 没有解决 Flask-WTF。我尝试重新安装,然后安装或使缓存无效并重新启动 PyCharm,但它仍然无法正常工作。
然后我想出了这个解决方案,它非常适合我。
通过 Ctrl+Alt+S (Windows) 打开 Project Interpreter,然后单击 Install (+) a new package。
https://i.stack.imgur.com/myuCX.png
键入 PyCharm 无法解析的包,然后单击安装包。然后单击确定。
https://i.stack.imgur.com/XD071.png
现在,您将看到您的库已解决。
在 Windows 10 10.0 上的 PyCharm 2020.1.4(社区版)中。在 PyCharm 中的设置下:文件 > 设置 > 项目结构我在项目结构中进行了两项更改:标记为源的主文件夹和 odoo 文件夹,其中包含我排除的所有应用程序屏幕截图显示了我所做的。之后我重新启动了 PyCharm:文件 > 使缓存无效/重新启动...
https://i.stack.imgur.com/KuXC9.png
https://i.stack.imgur.com/JePjc.png
按照其他答案的建议使缓存无效对我不起作用。我发现我的问题是 PyCharm 将 Python 包的 init.py 文件标记为文本,因此未将它们包括在分析中,这意味着 python 解析无法正常工作。
我的解决方案是:
打开 PyCharm 设置导航到编辑器 ->文件类型 查找 Python 并将 __init__.py
添加到 Python 文件列表或查找文本并从文本文件列表中删除 __init__.py
https://i.stack.imgur.com/386GQ.png
https://i.stack.imgur.com/EN9U2.png
我有一个项目,其中 src/
中的一个文件导入同一目录中的另一个文件。为了让 PyCharm 识别我必须去 File >设置 >项目>项目结构 >选择 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 来解决它。
帮助->编辑自定义属性
你在使用虚拟环境吗?
如果是这样,您需要通知 PyCharm 所需的 python.exe 位置的每次更改(仅 ./activate 对 PyCharm 来说是不够的)
确保 Pycharm 指向正确的解释器和包:文件 -> 设置 -> 项目 -> 项目解释器。单击齿轮并选择 virtualenv 的 Scripts 文件夹下的 python.exe
https://i.stack.imgur.com/weN2m.png
不定期副业成功案例分享