更新到3.1之后,PyCharm在包的“索引”期间永远挂起(在OSX 10.9.1,Python 2.7.5上)。
对我来说,这是在索引scipy
(0.13.3)时发生的。如果我取消scipy
,索引似乎完成,但随后又在“pythonstubs”上挂起。用户界面变得反应迟钝,CPU使用率最高,我无法做任何事情,不得不强制退出应用程序。
如果我重新安装scipy,PyCharm会再次在scipy扫描中的相同位置挂起(参见对话框的屏幕截图):
FWIW,我可以从系统命令行(包括一些使用scipy
和最近更新或安装的许多其他软件包)运行Python脚本而不会出现问题,因此Python安装是合理的。
有没有人遇到类似的问题或找到解决方法?
答案 0 :(得分:5)
问题在于可能已定义用于标识TODO项目的任何正则表达式匹配。 PyCharm用于匹配这些项的Java标准正则表达式库使用指数复杂度算法来搜索'*.a'
和类似模式。
理论上,可以非常快速地匹配任何正则表达式(存在线性算法),>但是regexp libs的许多开发人员根本不打算实现它。
Python re模块存在同样的问题:
>>> from timeit import timeit
>>> timeit("import re; list(re.finditer('.*a', 'foo' * 10000))", number=1)
0.6927990913391113
>>> timeit("import re; list(re.finditer('.*a', 'foo' * 50000))", number=1)
17.076900005340576
一般情况下,如果索引花费很长时间或挂起,请查看TODO项目中的RegEx,看看是否可以缩小匹配范围以提高性能。
答案 1 :(得分:3)
This就是为我解决了这个问题:
在主菜单上,选择“文件”|使高速缓存/重新启动无效。将显示“无效缓存”消息,通知您缓存将在下次启动时失效并重建。使用对话框中的按钮使缓存无效,重新启动IntelliJ IDEA或两者。
我的问题可能是我添加了太多的文件作为索引,它淹没了PyCharm。所以我标记了我不需要编入索引的文件的文件夹"排除"并使用上面的选项。
答案 2 :(得分:2)
我有类似的情况:
我刚刚安装了Anaconda(2),当我想更换解释器时,它会继续索引和崩溃。
“无效缓存”不起作用。
需要做的是添加解释器(Project -> Project Interpreter
)并更改Run -> Edit Configurations
。
我收到了here
答案 3 :(得分:1)
我遇到了同样的问题并且“File | Invalidate Caches / Restart”没有帮助,因为Pycharm根本没有响应。我在我的主目录中找到了“.Pycharm50”目录 - 它包含配置文件。在它被删除后,Pycharm就像你刚下载它一样启动,一切都还顺利。