Skip to content

Core library does not include init in root path #4247

Closed
@Downchuck

Description

@Downchuck

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions