On this page:
In the terms of PyCharm, content is a collection of files with which you are currently working, possibly organized in a hierarchy of subfolders. The folder which is the highest in this hierarchy is called content root folder or content root (shown as ) for short. A project has at least one content root folder, by default it is the project folder itself.
Having several content roots enables you to work with files from several directories that do not have a common immediate parent. This is helpful when you use some static contents, for example, icons. You can just save them all in a folder and then specify this folder as an extra content root in several projects.
Types of content roots
By default, all the files in a content root folder are involved in indexing, searching, parsing, code completion, etc. To change this status, folders within a content root can be assigned to the following categories:
- Regular content roots, created as described in the section Configuring Content Roots. These roots are marked .
- Source roots that contain the actual source files and resources. These roots
are marked .
PyCharm uses the source roots as the starting point for resolving imports.
The files under the source roots are interpreted according to their type. PyCharm can parse, inspect, index, and compile the contents of these roots.
- Excluded roots that contain files and folders ignored by PyCharm when indexing, searching,
parsing, watching etc. These roots are marked with .
Excluded roots are not visible to PyCharm. Usually, one would like to exclude temporary build folders, generated output, logs, and other project output. Excluding the unnecessary paths is a good way to significantly improve performance.