A relative import specifies the resource to be imported relative to the location of the import statement. There are two types of relative imports: implicit and explicit.
Relative imports make use of dot notation to specify location:
- A single dot means that the module or package referenced is in the same directory as the current location.
- Two dots mean that it is in the parent directory of the current location, in other words the directory above.
- Three dots mean that it is in the grandparent directory, and so on.
One clear advantage of relative imports is that they are quite succinct. Unfortunately, relative imports can be messy, particularly for shared projects where directory structure is likely to change. Relative imports are also not as readable as absolute ones, and it’s not easy to tell the location of the imported resources.