将命名空间包添加到事实之后的包中

2024-06-27 20:55:39 发布

您现在位置:Python中文网/ 问答频道 /正文

让我们假设您有一个相对流行的包,它使用torch/__init__.py定义了一个包。在项目生命的后期,您希望使其他包能够在子名称空间中定义模块,例如,使torch.backends.xpu工作。由于native namespace packages的工作方式,您不能简单地创建一个没有__init__.py的新文件夹torch/backends,因为当有人写入import torch.backends.xpu时,您将首先(成功)导入正常的包torch,并且将绕过名称空间机制

我的问题是,有什么方法可以让这一切顺利进行吗?也就是说,给定一个现有的普通包(torch),使用本机名称空间包在其下(torch.backends)有一个名称空间包

相关:Automatically import modules from a namespace package