PyCharm显示有效代码的未解决引用错误
我正在使用PyCharm来开展一个项目。 该项目打开并configuration一个解释器,并可以成功运行。 远程解释器path映射正确。 这似乎是正确的configuration,但PyCharm突出我的有效代码与“未解决的参考”错误,即使是内置的Python函数。 为什么这些似乎没有被发现,即使代码运行? 有没有办法让PyCharm正确识别这些?
这个问题的具体实例是使用远程解释器,但问题也出现在本地解释器上。
文件| 使caching无效…并重新启动PyCharm帮助。
德米特里的回应并不适合我。
通过转到Project Interpreters,select“path”选项卡,然后点击该子菜单中的刷新button,我得到了我的工作。 它自动填充了一些名为“python-skeletons”的东西。
编辑 :使用PyCharm 3.4.1截图(这是很好的隐藏)
有很多解决scheme,比别人更方便,并不总是工作。
从“快”到“烦人”,您可以尝试以下所有方法:
- 做
File
– >Invalidate Caches / Restart
并重新启动PyCharm。- 只要可以肯定,你也可以在下面的任何一种方法之后做到这一点。
- 刷新你的解释器的path:
-
File
– >Settings
-
Project: [name]
– >Project Interpreter
– >'项目解释器':齿轮图标 – >More
- 点击“显示path”button(下一个)
- 点击“刷新”button(下方)
-
- 删除解释器并再次添加它:
-
File
– >Settings
-
Project: [name]
– >Project Interpreter
– >'项目解释器':齿轮图标 – >More
- 点击“删除”button
- 点击“添加”button,重新添加你的中间人
-
- 删除您的项目首选项
- 删除您的项目的
.idea
文件夹 - closures并重新打开PyCharm
- 从头开始你的项目
- 删除您的项目的
- 删除您的PyCharm用户首选项(但先备份)。
-
~/.PyCharm50
在Mac上 -
%homepath%/.PyCharm50
Windows上的%homepath%/.PyCharm50
-
- 切换到另一个解释器,然后再回到你想要的。
- 切换到另一个解释器,不要切换回来。
我发现自己删除并重新添加远程解释器来解决此问题时,无效caching或刷新path不起作用。
我使用vagrant和每隔一段时间,如果我添加一个新的VM到我的multi-vm设置,转发的端口改变,这似乎混淆了PyCharm,当它试图使用SSH端口错误。 改变端口似乎没有帮助破碎的参考。
如果没有其他解决scheme适用于您,请尝试(备份)并删除〜/ .PyCharm40文件夹,然后重新打开PyCharm。 这也将杀死你的所有偏好。
在Mac上,您要删除〜/ Library / Caches / Pycharm40和〜/ Library / Preferences / PyCharm40。
在Windows上:C:\ Users \ $ USER.PyCharm40。
使用PyCharm 4.0.6(OSX 10.10.3)testing以下步骤:
- 点击PyCharm菜单。
- select项目解释器。
- select齿轮图标。
- select更多button。
- select你所在的项目解释器。
- select目录树button。
- select重新加载path列表。
问题解决了!
在我的情况下,这是目录结构。 我的项目是这样的:
+---dir_A +---dir_B +app | \-run.py
所以右键点击dir_b>“将目录标记为”>“项目根目录”
对不起,碰到这个问题,但是我有一个重要的更新。
如果你使用的是任何其他版本,你可能还想把你的项目解释器恢复到Python 2.7.6这个工作在我的Ubuntu安装的PyCharm 4.04专业版后没有其他的build议解决了我的问题。
您可以尝试closuresPycharm,删除项目中的.idea
文件夹,然后再次启动Pycharm并重新创build项目。 这对我工作,而无效caching没有。
在没有任何提议的解决scheme为我工作之后,我终于得到了这个工作。 我正在玩django rest框架项目,并使用我已经设置的virtualenv。 我能够通过将根文件夹标记为源根来修复Pycharm,但是然后django的服务器会抛出parsingexception。 所以一个人会工作时,另一个不会,反之亦然。
最后,我只需要将子文件夹标记为pycharm中的源代码。 所以我的结构就是这样
-playground -env -playground
第二个操场文件夹是我必须标记为所有事情的根源,以达到预期的效果。 这对我的情况没有任何问题,所以这是一个可行的解决scheme。
只是以为我会分享,以防别人可以使用它。
这也可能是一个python版本的问题。 我不得不挑选合适的工作。
我closures了所有其他项目,并在Pycharm中单独运行我所需的项目。 我从pycharm创build了一个独立的virtualenv,并使用pip在其中添加了所有必需的模块。 我在项目的解释器中添加了这个虚拟环境。 这解决了我的问题。
哎呀什么恶梦,我不同的StackOVerflow答案的合并:
- 切换到本地解释器/usr/bin/pythonX.X并应用
- 查看上面的path答案
- find骨架path。 我是(/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
- 如果没有自动显示,请切换回virt解释器并手动添加骨架path。
上述解决scheme都不适合我!
如果您的项目使用的是虚拟环境,请确保将您虚拟环境目录中的python.exe
文件作为项目解释程序(Alt + Ctrl + Shift + S)
这为我解决了这个问题。