В https://www.python.org/dev/peps/pep-0420/ During import processing, the import machinery will continue to iterate over each directory in the parent path as it does in Python 3.2. While looking for a module or package named "foo", for each directory in the parent path: If <directory>/foo/__init__.py is found, a regular package is imported and returned. If not, but <directory>/foo.{py,pyc,so,pyd} is found, a module is imported and returned. The exact list of extension varies by platform and whether the -O flag is specified. The list here is representative. If not, but <directory>/foo is found and is a directory, it is recorded and the scan continues with the next directory in the parent path. Otherwise the scan continues with the next directory in the parent path. У нас без __init__.py в подкаталоге provide не создаётся.