kivy Using the Screen Manager


Circular Imports

This is a big issue in Kivy, Python, and many programming languages

When one resource is required by two files, it is normal to place this resource in the file that will be using it most. But if this happens with two resources, and they end up in opposite files, then importing both into Python will result in a circular import.

Python will import the first file, but this file imports the second. In the second, this imports the first file, which in turn imports the second and so on. Python throws the error ImportError : cannot import name <classname>

This can be solved by using a third file, and importing this third file into the first two. This is in the second example.