Description
There is clearly a hierarchy in this package, for example "google.cloud.storage" is a particular package that includes the google.cloud core library. But there is no upstream "google" library, and so there is no associated google/__init__.py
file created, which can lead to a painful debugging situation where simple code like "import google.cloud.storage" fails.
In depth:
This is a corner case -- but allowing for that: the wheel packages for Google Cloud Python are setup to use subfolders, which is relatively unique in Python packaging. So these packages are all underneath the "google/" folder. Unfortunately, there is no root package -- because the Google Cloud Core is not actually a root package, it too is a subfolder.
The consequence is that there is no google/__init__.py
and there is no package that would own that file as a distributable wheel. This has some unfortunate side effects when attempting to do an import google.cloud.storage or similar when using Spark.
The workaround is simply to touch that file when packaging dependencies.