我查看了PyCharms FILE-SETTINGS-FILE STRUCTURE,我只能看到一个包含所有.py文件的小目录。然而,索引器似乎围绕文件系统的大部分跳舞,现在有时需要15分钟才能完成。
我首先想知道索引的目的是什么,其次我如何限制PyCharms索引列表。
答案 0 :(得分:2)
索引会考虑PYTHONPATH
中的所有目录。您可以了解这些内容的打印sys.path
:
>>> import sys
>>> sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
正如您所看到的,默认情况下路径中有一些目录。这些取决于操作系统和python版本。
在此示例中,特别是系统范围的dist-packages
(以前称为site-packages
)目录(/usr/lib/python2.7/dist-packages
)。这就是安装大多数软件包的地方。
PyCharm将查看这些目录,解析它找到的包/模块的所有内容,以获取有关其结构及其定义的所有内容的信息。这允许在编辑器中编写代码时实现自动完成,或者跳转到声明/使用某些东西。
您可以在 Python Interpreters 下的项目设置中找到这些目录的列表。在底部有一个选项卡式视图,其中包含 Paths 选项卡,其中列出了这些目录。
据我所知,不可能避免索引(至少在设置中搜索索引并不会从这个角度看出任何有用的东西)。但是,您可以为项目使用 fresh 虚拟环境,而不需要进行系统范围的扫描。 另外,使用包含 项目所需的依赖项的环境可以帮助您理解其结构,并避免错误地卸载所需的包。
在 Python Interpreters 页面的最底部,有一个创建新的VirtualEnv ,它允许您从PyCharm内部创建虚拟环境。
请注意,不进行索引意味着PyCharm的所有与查找源相关的功能(例如自动完成,跳转到声明,显示用法等)都不适用于未编入索引的包/模块。